簡體   English   中英

PHP / MySQL:准備好的語句是解決方案嗎?

[英]PHP/MySQL: Is prepared statements the solution for this?

如果我在所有MySQL查詢中使用mysql_real_escape_string()准備語句,我是否還需要使用mysql_real_escape_string()等來阻止它從SQL注入?

問題是:我讓我的代碼通過foreach所有$_POST元素和mysql_real_escape_string()在每個元素上運行。

但是當我開始在textareas上使用CKEditor時它就成了一個問題,因為它生成了插入到數據庫中的HTML代碼,但在插入之前,它通過我之前提到過的foreach循環,逃避了CKEditor生成的所有引號,在HTML頁面中顯示時不起作用。

那么准備好的陳述是可行的方法嗎?

如果正確使用預准備語句,則無需轉義要插入的內容,因為您要將內容與SQL代碼分開。

但它不是一種神奇的方法,只是“使用准備好的方法”。 您需要確保您的代碼實際進入參數。 你可以(我不是說你這樣做,但是要確定)只是准備一個你本來可以運行的查詢,並且遇到過你曾經遇到的同樣的問題。

如果你還記得准備好的語句不是一個神奇的“現在它是安全的”按鈕,你可以跳過轉義代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM