• ベストアンサー

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

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

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

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

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

benny12
質問者

お礼

「'」の置換処理の記述だけなかったので、 $value =~ s/'/'/g; の記述を追加しました。 ありがとうございました。

その他の回答 (2)

noname#41381
noname#41381
回答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 参考になれば幸いです。

参考URL:
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
benny12
質問者

お礼

ありがとうございます。 参考になりました。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

> クロスサイトスクリプティング対策が必要であると 同僚に言われました。 必要です。 > どの部分をどう修正すれば良いか分かりません。 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
質問者

お礼

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

関連するQ&A

  • フォームメールのクロスサイトスクリプティング対策について

    はじめまして。 webデザインを勉強中の者です。 今、知り合いのお店のウェブサイトを制作中です。 「お問い合せ」のページも必要とのことで、CGIのフォームメールを組み込もうと考えております。 私にはperlなどの知識がないので、レンタルのフォームメールを検討中です。 フォームメール使用の際のセキュリティー対策として 1)SSL回線使用 2)クロスサイトスクリプティング対策 が必要だと知りました。 しっかりとしたセキュリティー対策がなされているフォームメールを使用したいのですが、レンタルのフォームメールというのは標準的にクロスサイトスクリプティング対策(サニタイジング?)がなされているものなのでしょうか。 選定基準などがございましたら教えていただきたく存じます。 また、その他フォームメール使用にあたっての注意事項があればご教授下さい。

  • CGI設置

    CGI超初心者です。宜しくお願い致します。 最近、独自ドメインを取得しました。どこの有料サーバーにしようか検討中です。(現在使用しているプロバイダはCGI不可なので有料サーバーに変更予定) Kentさんのところで掲示板(CGI)をダウンロード→解凍→プログラム修正まで終わりました。 まだサーバーと契約していないのですが、プログラム修正した掲示板がどんな感じか確認したいのですが、どうすれば良いでしょうか?(つまり、HTMLをメモ帳にタグ直書きしたものをIEで確認しながらホームページを作っていくように、掲示板の出来栄えを確認しながらCGIのプログラムを修正したいのです。) CGIを許可しているサーバーに繋がっていない限り、上記のようなことは無理なことなのでしょうか? http://www.kent-web.com/index.html

    • ベストアンサー
    • CGI
  • CGIのセキュリティ対策は?

    ホームページにフリーのCGIをつけているのですが、たまにアクセス解析を見ると、ホームページには目もくれずにCGIにばかりアクセスしている誰かがいます。 いきなりアクセス解析のプログラム本体にアクセスした後、パスワードをかけたアクセス解析の結果が見えるページに移ったりして、普通にホームページを訪れた人が行かないようなルートで来ます。 更新履歴用の掲示板に不正書き込みをされ(書き込み用のフォームにパスワードがかけてある)、CGIの名前を変えたらそのようなことはもうなくなったことがあります。 おかしなアクセスの仕方をするIDは掲示板に入れないようにしていますが、アクセス解析にはそういう機能がないので何もしていません。 少し心配なのでなにかセキュリティ対策をしたいのですが、こういうことに詳しくないのでなにをしたら良いのかわかりません。 ホームページのサーバは一般で、CGIしか使えません。 私もプログラムの知識はないので、一つ一つ調べないと理解できません。 どうかよろしくお願いします。

  • サイトにアップしているページcgiの中身を見たいのですが

    サイトにアップしているレンタル掲示板ページ(cgi)の中身を見たいのですがどうしたら見れるでしょうか。 ネット上では普通にページ表示されていますが、 パソコン内蔵のファイルで見ようとすると「ファイルを開くアプリケーションの選択」をと出てしまいます。 掲示板ページの文章を修正したいのです。(プログラムなどまったくわかりません.。) 希望としましては「ez-html」で見てHTMLを文字修正したいのですが。 製作した人には聞くことがいまは不可能な状況なんです。 どうぞよろしくお願いします。

  • 外部でサイト内検索

    ホームページにサイト内検索をつけようと思い、色々調べています。 前はgoogleのサイト内検索をつけていたのですが、ページを更新してもクロールされて反映されるのにかなり時間がかかってしまいます。 そのため、googleのは外して他のを導入しようと考えて、 http://srch.jp/server.html のサービスを試してみました。 毎日深夜にクロールしてくれると書いてあったので期待したのですが、重すぎて、(たまに上手く表示されますが)安定せず、ほとんどエラーになり検索結果を表示してくれません。 フリーのCGIも考えてみましたが、サイト内検索を導入したいホームページのレンタルサーバーがCGIの設置を禁止している為、そこにCGIプログラムを置くことは不可能です。 また、それとは別にCGIの設置自由なホームページを持っているため、そこから外部設置できれば・・・とも考えましたが、外部設置が可能なサイト内検索のCGIプログラムが見つかりません。 他にサイト内検索で http://srch.jp/server.html と同じようなサービスをやっている軽い所。 もしくはCGIで、サイト内検索を導入したいサーバーにCGIを置かなくても、外部設置すれば、可能なフリーのCGIがありましたら、教えてください。

    • ベストアンサー
    • HTML
  • ホスティングでWEBサイトを運営している場合のセキュリティ対策は?

    最近、WEBサイトのセキュリティについてのアラートがIPAから出たこともあり、自分が運営しているWEBサイトについてどうすればよいか調べました。 しかし、技術的に詳しくないため、DDoSやらクロスサイトスクリプティングやら、いまいちよくわかりませんので、概要だけでも教えていただけるとありがたいです。または、初級シスアド(もはや過去の資格ですが)程度の知識でわかるような解説が載っているサイトを教えていただけるだけでも構いません。 なお、私の作っているWEBサイトの概要は下の通りです。 ○ホスティング企業から数ギガのスペースを借りています。 ○独自ドメインです。 ○販売やBBSはありませんが、メンバー限定のページがあるため、cgiでログイン処理があります。 ホスティングを利用しているので、DDoSはサーバを持っている企業側の対策になると思いますし、単に数十のページで構成されているだけで、販売やBBSなどもないのでSQL関係も大丈夫だと思っています。 残るのは、アップ用のFTP関連のセキュリティと、cgi関連かなと思うのですが、FTPのログの取り方をホスティング元(先?)に問合せるくらいしかイメージできません。 よろしくお願いいたします。

  • Yomi-Searchの設置方法について

    ホームページにサイト内検索機能を設置したいと思い、 こちら(http://yomi.pekori.to/)のページから Yomi-Search4.22をDLしました。 サーバがniftyなので、 こちら(http://yomi.pekori.to/help/ys4/index.html)の 「@niftyでの設置」を参考に、 ファイルの修正、パーミッションの変更を行いましたが、 ”ドメイン/admin.cgi”をアドレスバーに入力しても 「ページが表示されません」となってしまいます。 ちなみに、ニフティでのCGIの設置については、 http://homepage.nifty.com/make/cgi_own/ を参考に、 ■cgi-binのディレクトリにCGIに関するファイルを置き、 ■homepageのディレクトリにhtmlファイルなどを置きました。 CGI、Perlについては全く知識がなく、 パーミッションの設定が間違っているのか、 設置する場所を間違っているのかさえ分からない状態です。 どなたかご教示頂きたく、 何卒よろしくお願い申し上げます。

    • 締切済み
    • CGI
  • Xサーバーで作成したサイトの掲示板について

    Xサーバーで作成したサイトにWEB PATIO( KENT-WEBの無料掲示板cgi)をアップロードしましたが、トップページしか表示できません。 こちらの指示通りやっているのですが・・・ 管理用ページと掲示板トップページは表示するのですが、 そのほかのページは.「404 File Not Found」エラーになってしまいます。 いろいろ考えてみたんですが、行き詰まったのでご質問させていただきます・・・。

  • 自サイトに勝手にjavascriptが埋め込まれてしまいます

    別のカテゴリで質問しましたが、思うように回答が付かなかったので再度質問させてください。 無料レンタルサーバーで趣味のWebサイトを持っています。 急にサイトの表示が遅くなったのでソースを調べたら、書き込んだ覚えのないJavaScriptが全部のページに書かれており(広告ではありません)びっくりしてローカルのファイルをアップロードしなおしたら直りました。 が、今日、再び同じようなjavascriptが書き込まれていました…。 別の掲示板で質問し、クロスサイトスクリプティング?か、JavaScriptインジェクションアタックでは?と言われましたが、どうしてこうなったのかが分からず、また具体的にどのような被害があるものなのかがよく分かりません。 HTMLを独学で少々勉強した程度の素人ですが、二度と起こさないために対策を取りたいので、教えていただけたらありがたいです。 よろしくお願いいたします。

  • Linuxサーバーのcgi-binの中のgifやindex.htmが表示されない

    RedHat Linux9でWebサーバーをつくり、Perlを使ってCGIプログラムもアップしています。しかし、CGIプログラムは動いているのですが、cgi-binの中に入っているフォルダのgifファイルやindex.htmのファイルが表示されません。何が原因でしょうか。。 設定は特にいじってないです。