我得到了錯誤「嘗試回聲可能被污染的字符串」,錯誤行是一個字符串,嘗試回聲可能被污染
<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">
我怎樣才能解決這個問題。
錯誤指的是變量插入URL事實正是如此用戶指定的方式,這是潛在的安全風險。改爲使用urlencode($_GET['val'])
來逃避價值,從而中和風險。
您已啓用Taint函數。如果您將潛在的XSS代碼(受污染的字符串)傳遞給函數,它將發出警告。
您可以通過在php.ini
設置taint.enable
= 0
正如其他用戶建議,使用urlencode()
,urlrawencode()
(注意區別),htmlspecialchars()
可以消除警告禁用它。另外,如果要在數據庫中使用$_GET
,$_POST
變量,請務必通過mysqli_real_escape_string()
轉義它,或者使用準備好的語句或使用PDO。
不要直接使用$_GET[]
變量,但首先要處理它們,驗證沒有SQL注入或其他有害東西,然後顯示處理後的值。