※ ChatGPTを利用し、要約された質問です(原文:XSSを意図的に引き起こしたい)
XSSを意図的に引き起こしたい
お世話になっています。
今回セキュリティ講座を開くことになり、
XSSについて講義をすることになったのですがちょっと困っているので質問させてください。
PHPを使ってフォームに入力した文字列をそのまま出力する、
というWebアプリを作りたいのですが、
入力に
<script>alert("XSS");</script>
と入力してもアラートが表示されません。
PHPによって生成されたソースを見てみると、
<script>alert(\"XSS");</script>
と¥でエスケープされていました。
受講者に実際にjavascriptが動いてしまうということを実践させたいので、
なんとかalertを動かす方法は無いのでしょうか?
よろしくお願いします。
(厳密にはXSSではなくスクリプトインサーションですが^^;)
以下、ソースコードです。(BODY部分のみ抜粋)
<form action="test3.php" method="post">
入力<input type="text" name="str"><br>
<input type="submit" name="submit" value="表示"><br>
<?php
if($_POST['submit']) {
$string = $_POST['str'];
echo $string;
}
?>
実行環境:
windows XP
wwwサーバ:apache2.2
PHP5.2.8
ブラウザ:firefox3
お礼
回答ありがとうございます。 IE7で試してみてもエスケープされてしまいました。 PHP側の問題かと思い調べたところ自己解決しましたので 後に参照する方のために解決方法を記載しておきます。 php.ini(C:\WINDOWS以下)を編集し、 magic_quotes_gpc = On になっている箇所を magic_quotes_gpc = Off に変えるとエスケープされなくなりました。