![見出し画像](https://assets.st-note.com/production/uploads/images/105171421/rectangle_large_type_2_9c3ff14a26795b743ae4b99c82ef9106.png?width=800)
脆弱性対応ってなに?
XSSとは
「ハンドルネーム設定/解除の添削」に書いてあったんですけど、
「XSS(クロスサイトスクリプティング)」ってなんなんでしょうか?
今回は入力フォームからハンドルネームを送信してますよね?
このハンドルネームに、
ちょっと細工をするとイタズラができる、
みたいな技=脆弱性があり、その対応をするってことです。
では、ここでXSSのサンプルソースを書いちゃいましょう!
実際にXSS攻撃を実行してみよう
<form method="POST">
<input type="text" name="test" value="" />
<input type="submit" />
</form>
<?php
print $_POST['test'];
?>
これは脆弱性のあるプログラムです。
テキストボックスに
<script>alert(0);</script>
を入力してボタンを押してみてください。
メッセージボックスで0が表示されました。
よーく考えてもらいたいんですけど、
本当は「<script>alert(0);</script>」がそのまま表示されないと駄目なんです。なのにJavascriptが実行されて「alert(0)」が実行されてしまった、これがXSSという脆弱性になります。
これが自分だけの表示であればいいんですけど、
だいたいのSNSだと、ほかの人のコメント内容って表示されてますよね?
そのコメント内容にXSSの脆弱性があると、
例えば
「アダルトサイトに転送するJavascript」
「ページリロードが無限に実行されるJavascirpt」
などが実行されてしまいます。
わかってしまいました!
自分でかけ!って言われたら、
攻撃も防御も書けませんが、意味はわかりました!
脆弱性対応をしよう
では、対策をします。
//print $_POST['test'];
print htmlspecialchars($_POST['test']);
この変更をした後に、
<script>alert(0);</script>
をテキストボックスに入れて送信したら、
メッセージボックスは表示されなくなり
「<script>alert(0);</script>」が画面に表示されます。
感想
Windowsのアップデートで、
よく脆弱性って言葉は聞いてましたけど、
ぜんぜんどんなものか知らなかったんですけど、
やってみると、結構簡単に実行できちゃったのが
ちょっと怖くなりましたね。
WindowsUpdateとかは早めにやったほうがいいんですね。
これからWEBサイトとかゲームとか作るときに、
ちゃんと脆弱性対応をする必要があることは理解しました!
この記事が気に入ったらサポートをしてみませんか?