2013-03-28 62 views
3

我得到了錯誤「嘗試回聲可能被污染的字符串」,錯誤行是一個字符串,嘗試回聲可能被污染

<form action="?action=export&val=<?php echo $_GET['val'];?>&export=yes" method="post"> 

我怎樣才能解決這個問題。

回答

1

錯誤指的是變量插入URL事實正是如此用戶指定的方式,這是潛在的安全風險。改爲使用urlencode($_GET['val'])來逃避價值,從而中和風險。

2

您已啓用Taint函數。如果您將潛在的XSS代碼(受污染的字符串)傳遞給函數,它將發出警告。

您可以通過在php.ini

設置taint.enable = 0正如其他用戶建議,使用urlencode()urlrawencode()(注意區別),htmlspecialchars()可以消除警告禁用它。另外,如果要在數據庫中使用$_GET,$_POST變量,請務必通過mysqli_real_escape_string()轉義它,或者使用準備好的語句或使用PDO。

0

不要直接使用$_GET[]變量,但首先要處理它們,驗證沒有SQL注入或其他有害東西,然後顯示處理後的值。