個人開発者をサポートするQ&Aツール

個人開発者・フリーランスエンジニア・リモートプログラマの
問題解決をサポートするサービスです

登録不要ですぐに質問を開始できます

PHPを使用したウェブサイトでXSSを防ぐには

解決済 50pt 4件

主にPHPとHTMLを使ってウェブサイトを構築していますが、XSS(クロスサイトスクリプティング)を防ぐにはどうしたら良いのでしょうか?

なるべく簡潔に教えていただけると助かります。
php html
ベストアンサーに選ばれた回答
ユーザが入力したものを表示するときには、必ずPHPのhtmlspecialchars()常に使用することです。
使い方はこんな感じです
<?php
    echo htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
?>

回答の編集

この質問はすでに終了しているため変更できません

もしもTwigやSmartyのようなテンプレートエンジンを使ってる場合は、出力がエスケープされていることを確認してください

回答の編集

この質問はすでに終了しているため変更できません

多くのフレームワークでは様々な方法でXSSに対処する機能が備わっています。
もしも独自のフレームワークを使用する場合は、filter_input_arrayでサニタイズしてください
FILTER_SANITIZE_STRINGを使用することで、文字列をサニタイズできます

/*  XSS 対策 */
$_GET   = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$_POST  = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

回答の編集

この質問はすでに終了しているため変更できません

最も重要なことは、ユーザが入力したテキストを表示する前に無害化することです。
PHPにはフィルター関数があるのでこれを使ってください。

XSS攻撃は通常、Javascriptを埋め込むことで悪意のコードを実行します。
ブラウザーのアドオン機能を追加することでテストすることも可能です

回答の編集

この質問はすでに終了しているため変更できません


回答

この質問はすでに終了しているため、回答できません