【发布时间】:2017-01-17 23:04:09
【问题描述】:
有人可以帮我在这段代码中添加 htmlspecialchars 以防止 XSS:
<?PHP
if(isset($_POST['update'])) {
$ts=$_POST['ts'];
$user=$_POST['user'];
mysql_query("UPDATE users SET block_newfriends='". mysql_real_escape_string($ts). "' WHERE username='" .mysql_real_escape_string($user) . "'");
echo '<div class="rounded-container">';
echo '<div class="rounded-green rounded-done">';
echo '<b>reload</b><br>';
echo '</div>';
echo '</div>';
}
?>
我不知道把它们放在哪里,应该在 POST 函数中吧?
【问题讨论】:
-
XSS 预防措施通常发生在信息输出而非输入上。但是,如果您想确保这两个 post 值在输入到数据库时没有 html 字符,您可以通过 htmlspecialchars 传递它们。
-
是的,我想做那个标记,但你知道我如何将它们添加到我的脚本中吗?我不知道把它们放在哪里。
-
$ts = htmlspecialchars($_POST['ts']);对于用户变量也是如此。
-
防止 XSS 攻击:stackoverflow.com/q/30280370/2298301。此外,
mysql_函数容易发生 SQL 注入,您应该考虑使用 PDO 来防止这种情况发生 -
谢谢马克,我已经改变了这两个变量。我需要添加更多吗?