我收到错误“尝试回显可能被污染的字符串”,错误行是,
<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注入或其他有害的东西,然后显示处理后的值。