如果有人正在向我的基於PHP的應用程序注入MySQL語句。我使用MySQLi真正的轉義字符串,但是攻擊者只是簡單地插入SQL語句。讓我們假設:MySQL聲明注入
的攻擊只是注入聲明: http://example.com/?id=1 LIMIT 10
而且,甚至逃避串後,如下的代碼被執行。
SELECT * FROM ex WHERE id = 1 LIMIT 10
如果有人正在向我的基於PHP的應用程序注入MySQL語句。我使用MySQLi真正的轉義字符串,但是攻擊者只是簡單地插入SQL語句。讓我們假設:MySQL聲明注入
的攻擊只是注入聲明: http://example.com/?id=1 LIMIT 10
而且,甚至逃避串後,如下的代碼被執行。
SELECT * FROM ex WHERE id = 1 LIMIT 10
MySQLi真正的轉義字符串不防止SQL注入,它只是幫助準備查詢字符串數據和轉義敏感字符。您需要使用Prepared Statements。
爲什麼你不能使用預處理語句? – chris85
該應用程序相當龐大,我不得不改變每一行。 – Areeb
它沒有任何臨時解決方案嗎? – Areeb