<?php
// I fetching data from sql table "product".i want to prevent all unwanted characters and all.please add your suggestions in my code.
if(isset($_GET['search'])){
$search_query = $_GET['user_query'];
$get_pro = "select * from product where title like '%$search_query%'";
$run_pro = mysqli_query($con, $get_pro);
while($row_pro=mysqli_fetch_array($run_pro)){
$pro_title = $row_pro['title'];
echo " <span>$pro_title</span> "
}
}
?>
回答
防止SQL注入PDO(PHP數據對象)是最好的方法。 PDO爲程序員提供了更多的靈活性,就像您想要將項目切換到使用另一個數據庫一樣,PDO使該過程變得非常簡單。您只需更改連接字符串和一些查詢。 如果您的項目處於初始階段並希望獲得更大的靈活性,我強烈建議切換到PDO。要了解更多關於PDO的信息,可以參考此鏈接How does PHP PDO's prepared statements prevent sql injection? What are other benefits of using PDO? Does using PDO reduce efficiency?
好吧回到你問的問題。爲了防止在mysqli的接口SQL注入,你可以使用mysqli_real_escape_string()
函數,它有兩個參數:
- 連接 - 指定MySQL連接使用(必需)
- escapestring-的字符串進行轉義(需要)
這個步驟後,你的代碼看起來像這個 -
$search_query = mysqli_real_escape_string($conn, $_GET['user_query']);
其中$康恩將是你的連接句柄。 您可以在此步驟後附加'%'運算符,並可以使用結果來執行查詢。
感謝您的好建議。 –
如果您發現我的答案有幫助,請不要忘記註冊。 –
Mysqli是完全正常的,並且您忘記提及防止使用帶佔位符的參數化查詢的sql注入的唯一正確方法。 – Qirel
- 1. 此代碼是否防止SQL注入?
- 2. PHP:如何防止SQL注入對於此代碼
- 3. 如何防止此代碼中的NullPointerException?
- 4. 防止此代碼上的SQL注入方法
- 5. 修改代碼以防止SQL注入的SQL注入
- 6. 防止代碼注入和SQL/MySQL的注入在CakePHP
- 7. 此代碼中的SQL注入?
- 8. 防止在這個PHP代碼中的SQL注入
- 9. 如何防止在bash腳本中的代碼/選項注入
- 10. 防止動態代碼中的SQL注入
- 11. 如何防止掛起此Java代碼
- 12. 優化此代碼的任何建議?
- 13. 加密JavaScript代碼,以防止MongoDB中的JavaScript注入?
- 14. 如何在此代碼中添加mysql_real_escape_string()
- 15. Javascript/jquery防止注入執行代碼
- 16. 防止圖片上傳代碼注入
- 17. 將這個代碼防止SQL注入(Python)的
- 18. 防止此代碼的即時執行?
- 19. 防止在產生的SQL代碼
- 20. 如何在此PHP和MySQL代碼中演示SQL注入?
- 21. 如何在此php代碼中檢查sql注入?
- 22. 如何防止在我的android jni調用中停止代碼?
- 23. 是我的代碼SQL注入證明?
- 24. 不能sql注入我的代碼
- 25. 如何將此代碼添加到我已有的代碼中以便工作
- 26. 需要優化此代碼的建議
- 27. PHP/MySQLi:如何防止INSERT上的SQL注入(代碼部分工作)
- 28. 如何防止Eclipse爲特定的Java代碼行添加'final'?
- 29. 如何防止您的JavaScript代碼被盜,複製和查看?
- 30. 請驗證此代碼給我一個建議?
格式不正確的問題很難閱讀:不太可能得到直接的答案。 – Richard