php

セキュリティ

ウェブアプリケーションは、セキュリティに注意しないといけません。
例えば、前回作成したメールのフォームの本文に

<script language="javascript">
window.alert("test!!!");
</script>

と書いて、送信ボタンを押すと、ウィンドウが表示されます。
なぜそうなるかというと、
ウェブブラウザで動作するjavascriptのコードが入力されたからです。

このときウェブ上で入力したjavascriptが解釈されてメッセージが
表示されます。このようにタグを含んだ特殊な文字列を入力されることに
より、こちらが意図しない動作が起きてしまいます。

この意図しないことをウェブアプリケーションにもたらす状況を
クロスサイトスクリプティングといいます。

特殊なタグをエスケープする

上記のようなことを避けるため、フォームの入力において
ユーザーからの入力をチェックする必要があります。
特に、javascript等を含むHTML多雨具を無効にする必要があります。
このときは、htmlspecialchars()関数を使います。

サンプルコードの実行結果はこちら

この関数は入力された文字列の内、ブラウザが解釈する特殊な文字を
HTMLのエスケープシーケンスに変換します。

このエスケープ処理を行うことで、HTMLタグをお無効化し、
javascriptによる不正な操作も防ぐことができます。
strip_tags()関数を使うと、HTMLタグを除去できます。

-php
-, ,