セキュリティ

[PHP]クロスサイトスクリプティング攻撃対策

どうも、シローです。

今回はクロスサイトスクリプティング攻撃とPHPによるその対策の話をしようと思います。

クロスサイトスクリプティング(XSS攻撃)とは

クロスサイトスクリプティング攻撃とはユーザ投稿型のサイトなどで悪意のあるスクリプトを埋め込む攻撃です。

例えば掲示板の入力フォームに以下のようなJavaScriptのコードを入力するとします。

HTMLこのコードを読み込んでページのソース内の一部にすることで、この場合は無限にアラートが出てしまい。

掲示板が使えなくなってしまいます。

このように、ユーザ入力を受け付けるアプリケーションではユーザが悪意のあるコードを入力してそれを実行させ、

他のユーザに危害を加えることがデフォルトではできてしまいます。

対策

XSS攻撃の具体的な対策は

  • HTMLタグをエスケープして文字列にしてDBに登録
  • DBに登録した文字列のHTMLタグをエスケープしてビューに表示

です。

PHPではhtmlentities()関数があり、HTMLタグをエスケープすることができます。

以下がその例です。

画面出力

これで無事、悪意のあるコードもただの文字列として出力されました。

くれぐれも、掲示板で悪意のある攻撃はしないように、犯罪です。

参考

 

  • この記事を書いた人

シロー

Webシステムの開発のお仕事をさせて頂いております。 フリーランスの日常、Web開発に関する情報を発信しています。 趣味はゲーム、映画鑑賞、個人サービスを作ることです。

-セキュリティ
-,

© 2021 Shiro's secret base