innerhtmlでクロスサイトスクリプティングのサンプルを作りたかったのだけれども…

Webエンジニア・ソーシャルメディアを研究している雄大です。

昨日はdocument.writeを使って、クロスサイトスクリプティングの簡単なサンプルを作った
http://yudai-stadium.com/blog/?p=146

ので、今回はinnerhtmlに挑戦してみました。

inner.php

<?php
    $input = "alert('XSS');";
    $input = htmlspecialchars($input);
?>
<html>
<head>
<title>サンプル</title>
<script type="text/javascript" language="javascript">
<!-- function sample() { document.getElementById("url").innerHTML = "<?php echo $input; ?>"; } // -->
</script>
</head>
<body>
<h1>sample</h1>
<span id="url">
<a href="javascript:sample();">クリック</a>
</span>
</body>
</html>

出力をすると、

残念な事に、alertが表示されず…。

htmlspecialcharsの部分をコメントアウトしてもうまくいかず…。innerhtmlにはjavascriptで悪さが出来ないような仕様になっているのか…。

わかったら、追記します。

コメント

タイトルとURLをコピーしました