初心者だけどPerlが大好き

コードが世界を変える!

XSSされないために

XSSクロスサイト・スクリプティングされてしまうということは,
ユーザーの入力内容をそのまま出力してしまうので
利用されてしまうということです。
悪意のあるJavaScript
フォームのtextareaに 直接書き込めないようにするには
以下の方法を取ります。

$Comments =$query->param('Comments');
に続いて 以下の内容を打ち込みます。

#置換を行うべき文字一覧

# $置換を行う変数 =~ s/対象の文字列/置き換える文字列/g;
$Comments =~ s/&/&/g;
$Comments =~ s/</&lt;/g;
$Comments =~ s/>/&gt;/g;
#OSでエンターキーによる改行があれば<br>に変換
$Comments =~ s/\x0D\x0A/<br>/g;
#タブ文字をスペースに変換
$Comments =~ tr/\t/ /;

すると以下のようになり JavaScriptは 動きませぬ

XSSされている場合
2009-09-13 の記事にさかのぼりますが

CGI.pmの単純なフォーム・ベースのスクリプトを簡単にしました
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod

補足ですが、これは簡単に XSSクロスサイト・スクリプティングができてしまいます。
textarea(-name=>'Comments',
     -rows=>10,
     -columns=>50); の部分です。
フォームの ここに

<script> <!-- alert('スクリプトを実行!'); --> </script> 

と入力すると こんなん出ます。。。
ジャバスクリプトの警告です。