これを修正するように求められる前に、XSS についてあまり知りませんでしたが、スタック オーバーフローに関するいくつかの質問を読みましたが、問題は解決していないようです。
ホワイトハット セキュリティを使用して Web サイトの脆弱性をチェックしていますが、フォームに XSS の問題があることがわかりました。
パラメータ値 = $1<%wscheck と表示されます
そして説明には次のように書かれています:
本文: first_name=&surname=&email_confirm=&signup_password=whs"onmouseover="prompt()&country=null パスワード入力ボックスにカーソルを合わせて、インジェクションを起動します。
これは、フォームが脆弱かどうかをテストする方法ですが、実際の問題が何であるか、またはそれを修正する方法がわかりません.
フォームの値をエコーするときにhtmlspecialchars()を使用するという回答を読んだので、それを行いました。
echo htmlspecialchars($password, ENT_QUOTES)
入力をサニタイズするときもstrip_tags()を使用するので、それを行いました。
$password = ucwords(mysql_escape_string(trim($_POST['password'])));
$password = strip_tags($password);
しかし、問題はまだ解決していません
誰か私に何ができるか考えていますか?
パスワードフィールドの HTML は次のとおりです。
echo "<input type = \"password\" name = \"password\" value = \"" . $password . "\" class = \"newsletter_complete_input\" />\n";
ユーザーに電子メールで送信されます。これは、電子メールの本文の一部の HTML です。
$message .= "<a href = \"http://www." . $config_website_short_url . "/confirm.php?c=" . htmlspecialchars($code, ENT_QUOTES) . md5($code) . "&e=" . htmlspecialchars($code_email, ENT_QUOTES) . "\">http://www." . $config_website_short_url . "/confirm.php?" . htmlspecialchars($code, ENT_QUOTES) . md5($code) . "&e=" . htmlspecialchars($code_email, ENT_QUOTES) . "</a>";