あたまがうにになる

2004年08月29日

人工無能を作ろう〜汚染チェック(perl)

フォーム・ファイルなどの外部から与えられたデータを、そのままコマンド引数などに使うのはすごく危険で、 使い方を間違えると重大なセキュリティーホールになってしまう事もあります。
そういった危険なデータを調べる(対策をとる)事を「汚染チェック」などと言います。

今回は形態素解析ツールを使う部分で汚染チェックが必要になると思いますが、 具体的にどんなソースを書けば良いのか解からない人の為に簡単なサンプルを用意しておきます。
プログラムの文字コードはEUC-JPで、CGIとして実行できブラウザから実行結果を確認できるように書いてます。
 

本当なら、特定の文字をエスケープ記号でエスケープさせるのが正しい対策なのですが、 危険なパターンを全部調べるのが面倒臭いので、汚染文字列に含まれている半角のアルファベット・数字・記号を全角に変換するだけという適当な対応です。
はっきり言って、全角ならコードを実行出来ないだろうと言う安易な考えからです。


このコードはJcode.pmがインストールされている環境でしか動きません。
Jcode.pmを使わない場合、jcode.plを代用にする事も出来ます、以下の変更を行ってみて下さい。
3:use Jcode;

require "jcode.pl";#jcode.plを置いたパス
に変更

24:$str = Jcode->new($str)->h2z->tr($tr1, $tr2);

&jcode::h2z_euc(\$str);
&jcode::tr(\$str, $tr1, $tr2 );
に変更

上記2箇所の変更でjcode.plの代用が出来るはずです。
jcode.plだと、ユニコードが使えないので使いづらいかもしれません、素直にJcode.pmを使うことをお勧めします。

情報やソースのご利用は各自利用者の責任でお願いします。
blank_space
投稿者 Lanタソ : 2004年08月29日 14:15 | トラックバック
 

それを読んで作る無能が同じものになるとやだし
こんなファイルあるw
キイボードの市場価格をチェックしてキャプチャデータをお渡しするって事だと思う…
いやいやw

Posted by: 酢鶏 at 2004年08月31日 02:03
 
blank_space
コメントする

名前を保存しますか?






blank_space
パーツ
blank_space

Adds

blank_space

カテゴリー
blank_space

Link
blank_space