「汚染されている可能性のある文字列をエコーしようとしています」というエラーが表示されました。エラー行は、
<form action="?action=export&val=<?php echo $_GET['val'];?>&export=yes" method="post">
この問題を解決するにはどうすればよいですか。
「汚染されている可能性のある文字列をエコーしようとしています」というエラーが表示されました。エラー行は、
<form action="?action=export&val=<?php echo $_GET['val'];?>&export=yes" method="post">
この問題を解決するにはどうすればよいですか。
汚染機能を有効にしました。潜在的な XSS コード (汚染された文字列) を関数に渡すと、警告が発行されます。
php.ini でtaint.enable
=を設定することで無効にできます0
他のユーザーが示唆しているように、urlencode()
, urlrawencode()
(違いに注意してください) を使用するとhtmlspecialchars()
、警告を取り除くことができます。また、データベースで$_GET
,$_POST
変数を使用する場合は、必ずエスケープするmysqli_real_escape_string()
か、準備済みステートメントを使用するか、PDO を使用してください。
このエラーは、ユーザーが指定したとおりに変数が URL に挿入されることを示しており、これは潜在的なセキュリティ リスクです。代わりに使用urlencode($_GET['val'])
して、値をエスケープし、リスクを中和します。
変数を直接使用$_GET[]
するのではなく、まず変数を処理し、SQL インジェクションやその他の有害なものがないことを検証してから、処理された値を表示します。
Taint エクステンションが有効になっています。
http://php.net/manual/en/intro.taint.php
echo(s) を実行するときに htmlspecialchars() を使用してみてください