Navigation Log - なびろぐ -
1998/12/18

...X680x0 spirit inside...

この日記はGNSで生成しています。
この日記の画像はOPTPiX webDesigner Ver.4で生成しています。

hauN
Go amazon.co.jp

■ご注文リストから■ [一覧]
■Amazonギフト券■ [購入]
大正処女御伽話 4 (ジャンプコミックスDIGITAL) []
大正処女御伽話 4 ...
Amazonほしい物リスト


1998/12/18 (金) 曇(川崎) 晴(片品)

ひる〜

_ お仕事が降ってきていた。なになに・・・「作業結果をbackup/19981214/に入れてください」って・・・バックアップの意味を理解してないですね・・・今日のデータは19981218に入れないと意味ないっしょー。

_ 今週から日記のHTML更新ができるようになったわけだが、ご存じの方も多いように、この日記は湘南sideはうンsideがある。実は昨日まで両方のフォームを叩いて更新していたのだが、昨日の成果で「湘南側の更新を自動的にはうンに反映する」ようにした。具体的には、湘南側の更新ファイルを随時はうンにメール、.forwardで更新スクリプトを起動するようになっている。はうンへ投げるついでに自分にも投げているので、自動的に更新記録がローカルにも保存されることになる。某誰かさんみたいに「昨日のファイルに上書きしちゃいました」を万一やってしまったとしても問題なく復旧できる。バッチリだ!

_ ただまぁ、今の「ただ.forwardに書く」方法だと全メールをスクリプトに食わせるような形になり、あまりカッコいい形とはいえない。もちろん全部食わせてもスクリプト側でSubject行・本文のコントロール行・パスワードの合計3重チェックを行っているので間違ったファイルが日記に紛れ込むことはまずないはずだが。今後はprocmailの研究をして、こいつで振り分けて更新スクリプトに流し込むようにしたほうがいいだろーな。

_ あ、公開は少々お待ちを。とりあえず実装しただけなので、configurationしやすい形に直してからでないと・・・まぁ、1.03でもあまりconfigurationしやすいとはいえないかも知れんが。

_ 例が変換されてしまう・・・わしはHTMLの代替表記で回避してます。ロボを@/ロボ//って書くのに@/ロボ//って書くという感じ・・・うぅ、あまり書くと入れ子がわかんなくなる^^;。

_ いや、文字通りってのは分かるんだけども、妙に浮いてたんで^^;。ウチでは縫いもせずそのまま使います。あ、年越しお願いの件は前にお話しましたよね。

_ Librettoには仮想CDは入ってないですが、そのかわり圧縮ドライブ3つ(アプリ・データ・ProAtlas98)も入っているから同じか^^;。今2.1GB・・・あと2GBくらいは欲しいんだけどなぁ。

_ 究極奥義って・・・そのコマンドはまさしく「お前はもう死んでいる」ではないですか・・・あべしっ!

_ 昼飯は出前弁当屋・・・サバの竜田揚げ。普段なら本を買いに行くところだが、足は痛いわASCIIがあるわでやめ。

_ ファイル破壊・・・どういういきさつで起こったんでしょうか。書き込みを行う可能性のあるファイルの場合、バックアップを行うことは必須(GNSの場合、元ファイルを%back.outにコピーしてから書き換えを行う)でしょう。ましてやネットワーク経由なんて、「いつ切れるか分かったもんじゃない」という想定で組まないとだめっしょー。

_ ちなみにわし、(ローカルで手書きしていたころの日記を含め)全てのファイルが「編集するファイルとputするファイルは別物」です。一度upload専用フォルダにコピーして、そこからputしてるのね。容量と手間はそれなりにかかりますが、それほどに「自分の手と頭が創り出したデータは貴重」なのです。

_ printfのformatミスって、デバッガなしでは実にドハマる項目な感じ・・・デバッガ使えればすぐ分かるんだけどもね。パラメータチェック機能付きのコンパイラもけっこーあったよーな。

_ mod_perlのせいではなく・・・送信フォーム入りのページに対してブラウザのbackで行ったり来たりすると、送信するパラメータが異常なものになることがあるみたいです・・・GNS書いているときに気づいたこと。

_ でも、そんなことより、問題は「異常な入力をはじく」のがアプリとして非常に重要であるということ。特に、ファイル名(の一部)を受け付けるようなフォームは慎重に組まないと「システムセキュリティを大幅に下げてしまう」ことになりかねません。


$filename = $cgi{'FILENAME'};
open( FOUT, $filename );

なんてコーディングをしたらヤバいのは言うまでもありませんよね。なお、GNSではファイル名はすべて数値として処理しています。数値文字列ではない(代入時にちゃんと"+0"する)のが重要。

_ ごめん。上の行、読んでみたら「入力エラーチェック」のネタの話のはずが「設計」に断りなくスイッチしてしまっているではないか。間に「エラーチェックをしやすい設計をすれ」というフレーズを挟むつもりで忘れてたよ・・・むぅ。


[URL] [View Log()] [Trackback]
Name: Comment:



メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]

「表紙へ戻る」
「会議室」 「最新版」 「なびろぐindex」 「GNSソースを読む」