CGIについて1から書いております
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
SSIやCGIは便利さの代償としてセキュリティ上非常に危険なものです。以下の文章はセキュリティを強化するために必要な情報ですが、反面、未防御のシステムに対してアタックをかけるための情報にもなってしまいます。この場で記載すべきかどうか悩んだのですが、このホームページの読者を信用して公開することにしました。
◆ index.htmlを設置する
CGIスクリプトを置くディレクトリには index.html を置いておきましょう。index.html が存在しない場合、cgi-bin ディレクトリをブラウザでみるとCGIスクリプトの一覧が見えてしまいます。ファイル名からセキュリティホールのあるスクリプトを見つけてアタックされる可能性が高くなります。
◆ 見られるとまずいファイルはpublic_htmlの外に
パスワードファイルなど、見られるとまずいファイルは、public_htmlの外など、通常の閲覧者が見ることのできないディレクトリに置きましょう。(それでも、同じサーバーにログインできる人や、他の人のCGIのセキュリティホールのために、見られてしまうことはあります。)
◆ evalの危険性
perlはよく分からないのでCGIスクリプトをシェルで記述しよう・・・と思った時など、CGIスクリプトのパラメータを解釈するためによく、UNIX のシェルの eval を利用しますが、これは大変危険です。もし、変数名NAMEの値として「値;危険なコマンド」を指定されると・・・
◆ grepの危険性
「grep $KEY file」というコードも危険です。もし、KEYの値としてバッククォーテーション( ` )で囲まれた「`危険なコマンド`」を指定されると・・・
◆ SSIの危険性
チャットや伝言板など利用者の書き込んだメッセージを表示するシステムではSSIに注意してください。もし、「」を書き込まれると・・・
◆ パスワード漏洩の危険性
人様のパスワードを扱う場合はとにかく厳重に扱ってください。多くの人は同じパスワードを使いまわします。あなたのサービスが不法使用されるだけでなく、同じパスワードを使いまわしていた他の有料サービスも不法使用される恐れがあります。あなたのCGIスクリプトは完璧でも、同じサーバー上の他の人の不備で情報が漏れる可能性もあります。パスワード情報ファイルに password.txt などといった安直な名前はつけないようにしましょう。
◆ index.htmlを設置する
CGIスクリプトを置くディレクトリには index.html を置いておきましょう。index.html が存在しない場合、cgi-bin ディレクトリをブラウザでみるとCGIスクリプトの一覧が見えてしまいます。ファイル名からセキュリティホールのあるスクリプトを見つけてアタックされる可能性が高くなります。
◆ 見られるとまずいファイルはpublic_htmlの外に
パスワードファイルなど、見られるとまずいファイルは、public_htmlの外など、通常の閲覧者が見ることのできないディレクトリに置きましょう。(それでも、同じサーバーにログインできる人や、他の人のCGIのセキュリティホールのために、見られてしまうことはあります。)
◆ evalの危険性
perlはよく分からないのでCGIスクリプトをシェルで記述しよう・・・と思った時など、CGIスクリプトのパラメータを解釈するためによく、UNIX のシェルの eval を利用しますが、これは大変危険です。もし、変数名NAMEの値として「値;危険なコマンド」を指定されると・・・
◆ grepの危険性
「grep $KEY file」というコードも危険です。もし、KEYの値としてバッククォーテーション( ` )で囲まれた「`危険なコマンド`」を指定されると・・・
◆ SSIの危険性
チャットや伝言板など利用者の書き込んだメッセージを表示するシステムではSSIに注意してください。もし、「」を書き込まれると・・・
◆ パスワード漏洩の危険性
人様のパスワードを扱う場合はとにかく厳重に扱ってください。多くの人は同じパスワードを使いまわします。あなたのサービスが不法使用されるだけでなく、同じパスワードを使いまわしていた他の有料サービスも不法使用される恐れがあります。あなたのCGIスクリプトは完璧でも、同じサーバー上の他の人の不備で情報が漏れる可能性もあります。パスワード情報ファイルに password.txt などといった安直な名前はつけないようにしましょう。
PR
この記事にコメントする