-PR-
解決済み

クロスサイトスクリプティングの対策について

  • すぐに回答を!
  • 質問No.447226
  • 閲覧数1466
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 88% (267/302)

まだあまり知識がありませんが、仕事でWebサーバ(ホームページ)の管理をしています。
最近、ホームページ内に掲示板を設けたのですが、クロスサイトスクリプティング対策が必要であると
同僚に言われました。
検索で出てきたページを見るとperlプログラム(.prlファイル?)内を書き換えるような事が
書かれていますが、どの部分をどう修正すれば良いか分かりません。
検索したページで修正するように書かれていたものが、掲示板で使用しているファイルを見ると、
perlプログラム(.prlファイル?)ではなくcgiプログラム(.cgiファイル)を修正するようにも思えるのですが、
どうなのでしょうか。
お分かりになる方いらっしゃいましたら、宜しくお願い致します。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル11

ベストアンサー率 38% (141/363)

> cgiファイルを見てみましたら、
> デコード処理の欄の中に
> -----------------------------------------
> # タグ処理
> $value =~ s/&/&/g;
> $value =~ s/</&lt;/g;
> $value =~ s/>/&gt;/g;
> $value =~ s/"/&quot;/g;
> -----------------------------------------
> という記述があったのですが、これで対策はされてい
> るという事なのでしょうか。

そうです。それで大丈夫ですよ(^-^)
お礼コメント
benny12

お礼率 88% (267/302)

「'」の置換処理の記述だけなかったので、

$value =~ s/'/'/g;

の記述を追加しました。
ありがとうございました。
投稿日時 - 2003-01-21 17:12:15

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 38% (141/363)

> クロスサイトスクリプティング対策が必要であると
同僚に言われました。
必要です。

> どの部分をどう修正すれば良いか分かりません。
perlでhtmlを出力する際、危険な文字列を排除するように変更すればいいのです。

もっと具体的に言えば、クロスサイドスクリプティングとは「外部から送られてきたスクリプトを実行してしまう」事です。
#ちょっと乱暴な言い方ですが、簡単に言えばそう言うことです。
つまり、外部から送られてきたスクリプト(もちろん悪意あるスクリプト)を無効にするようにすればいいのです。

では、実際はどうするのか?
これは「サニタイジング」と言うキーワードで検索してみてください。
多分山ほど出てきます。
すご~く簡単に言うと「タグを無効にする」と言うことです。
と言うのも、危険な文字列というのは
<script>
<form action"htt://www.aaaaaa.com/cgi-bin/cross.cgi" metod="get>

等のタグで記述されます。つまりこれらの文字列を無効化するプログラムを用意すればいいのです。

誰かが掲示板に、
<a href="http://aaaaaa.com/cgi-bin/corss.cgi">来てね♪</a>等書き込んだとします。
通常はこれをテキストファイルや、DBなんかに保存しておいて、誰かが掲示板を開けばhtmlに出力すますが、この出力する際に、サニタイジングを行います。
例えば、掲示板の本文を $mesと言う変数に保存しておいたとすると、これを出力する前に、
$msg=~s/</&lt;/g;
$msg=~s/>/&gt;/g;
等で、タグを無効化にしてやればいいのです。
その他、危険な文字列としては 「&」、「"」、「'」等もありますので、これらも無効化しましょう。
度々使うのであれば関数化しておいた方が便利ですね。

以上です。
お礼コメント
benny12

お礼率 88% (267/302)

ご回答ありがとうございます。
perlやcgiについての知識が全然ないもので、kusukusu様の回答を読ませて頂いても、
どのファイルのどの部分を変更したらいいか分からない状態です…。
掲示板自体も自作のものではなく、フリーのものを使用しているのですが、
cgiファイルを見てみましたら、
デコード処理の欄の中に
-----------------------------------------
# タグ処理
$value =~ s/&/&amp;/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/"/&quot;/g;
-----------------------------------------

という記述があったのですが、これで対策はされているという事なのでしょうか。
投稿日時 - 2003-01-18 16:13:35


  • 回答No.2

#1 kusukusuさんがわかりやすく説明していますので、だぶってしまいますが、

@ITでXSSについてイメージ付きでわかりやすく説明されています。
http://www.atmarkit.co.jp/fsecurity/special/31xss/xss01.html

で、IPAのホームページにかなり有効なサニタイジング手法がのっています。
たぶんこれでほぼ完全に防げるのではないかと...。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html

参考になれば幸いです。
お礼コメント
benny12

お礼率 88% (267/302)

ありがとうございます。
参考になりました。
投稿日時 - 2003-01-21 17:07:35
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-

特集


専門家があなたの悩みに回答!

ピックアップ

ページ先頭へ