我收到错误“尝试回显可能被污染的字符串”,错误行是,
<form action="?action=export&val=<?php echo $_GET['val'];?>&export=yes" method="post">
如何解决此问题。
答案 0 :(得分:2)
您已启用Taint个功能。如果将潜在的XSS代码(受污染的字符串)传递给函数,它将发出警告。
您可以通过在php.ini
中设置taint.enable
= 0
来禁用它
根据其他用户的建议,使用urlencode()
,urlrawencode()
(注意区别),htmlspecialchars()
可以消除警告。此外,如果要在数据库中使用$_GET
,$_POST
变量,请确保通过mysqli_real_escape_string()
转义它或使用预准备语句或使用PDO。
答案 1 :(得分:1)
错误是指变量以与用户指定的方式完全相同的方式插入到URL中,这是一个潜在的安全风险。改为使用urlencode($_GET['val'])
来逃避价值,从而抵消风险。
答案 2 :(得分:0)
答案 3 :(得分:0)
不要直接使用$_GET[]
变量,而是先处理它们,验证没有SQL注入或其他有害的东西,然后显示已处理的值。