2013-08-05 39 views
-2

是這個代碼安全嗎?什麼是更安全的,mysql反sqli + xss解決方案

$name = htmlspecialchars($mysqli->real_escape_string($_POST["name"]), ENT_QUOTES,"UTF-8"); 

或者我應該用這個

$name = $mysqli->real_escape_string(htmlspecialchars($_POST["name"], ENT_QUOTES,"UTF-8")); 

或不要緊? Thx

+0

[偉大的逃避現實(或:你需要知道怎麼處理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

1

都沒有。

在進行查詢時保護數據庫免受SQL注入。如有可能,請執行with parameterized queries而不是手動轉義。

當您生成HTML時,請保護您的HTML不受XSS 的影響。即將htmlspecialchars應用於您獲得的數據out的數據庫中,而不是您放入其中的數據。

+0

哦,好的,這樣頁面就可以被黑客攻擊,當我使用$ mysqli-> real_escape_string(?因爲我試圖把'etc'放到發送到數據庫的字段中,它工作正常。 – user2653217