mysql 存儲過程能不能防止sql注入


不能。理由:雖然存儲過程中SQL語句已經預編繹過了,若參數是字符串帶有語法,仍會詞法分析語法分析。仍然會執行類似 set level = 10。

最好的辦法,在上層邏輯,把特殊字符全部過濾掉

1、使用了存過程,很多相似性的刪除,更新,新增等操作就變得輕松了,並且以后也便於管理!
2、存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。而且防止部分sql注入
3、存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因。
4、存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以后都會按這個程序運行。
5、存儲過程主要是在服務器上運行,減少對客戶機的壓力。
6、存儲過程可以包含程序流、邏輯以及對數據庫的查詢。同時可以實體封裝和隱藏了數據邏輯。
7、存儲過程可以在單個存儲過程中執行一系列SQL語句。
8、存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM