ホームページ >バックエンド開発 >PHPチュートリアル >PHP を信頼しない_SELF セキュリティ問題_PHP チュートリアル
echo $_SERVER['PHP_SELF'];にあります このステートメントは、フィルターされていない値を直接出力します。ソースをたどるために、PHP マニュアルの説明を見てみましょう
'PHP_SELF'<br><br>The filename of the currently executing script, relative to the document root. <br>For instance, $_SERVER['PHP_SELF'] in a script at the address <br>http://example.com/test.php/foo.bar would be /test.php/foo.bar. The __FILE__ <br>constant contains the full path and filename of the current (i.e. included) file.<br>If PHP is running as a command-line processor this variable contains the script <br>name since PHP 4.3.0. Previously it was not available.その理由は非常に明らかです。$_SERVER['PHP_SELF'] はサーバーによって提供される環境変数であるように「見えます」が、実際には $_POST や $_GET と同様であり、ユーザーが変更できることがわかります。 $_COOKIE など、他にも同様の変数がたくさんあります (ユーザーが Cookie を「遊びたい」場合は、私たちにできることは何もありません)。解決策は簡単です。
strip_tags
、htmlentities
、その他の同様の関数を使用してフィルタリングまたはエスケープします。りー --分割--
上記の例では、常に慎重なコーディング精神を維持する必要があります。 Chris Shiflett は、XSS を防ぐための 2 つの基本的なセキュリティのアイデアをブログで非常にわかりやすくまとめています 。 上記を「フィルター入力、エスケープ出力
」と訳しました。詳しい内容については、ここでは割愛しますが、彼のブログのこちらの記事をご参照ください。
http://www.bkjia.com/PHPjc/320512.htmlwww.bkjia.com
true