在被要求解决这个问题之前,我对XSS并不是很了解,但我已经阅读了关于堆栈溢出的几个问题,但他们似乎已经解决了我的问题。
我正在使用Whitehat安全性来检查我的网站是否存在漏洞,并且我已经通过我的表单显示了XSS问题。
它表示参数值= $ 1<%whscheck
在描述中说:
正文: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>";