回覆列表
  • 1 # 手機使用者86563429269

    樓主指的SQL注入在原理上被根絕是指使用預編譯吧。其實SQL注入並沒有死透,主要原因有四:

    1.預編譯不能解決所有SQL注入:比如表名/列名/排序動態傳入的場景,原因是這些地方不能預編譯,因此很多人還是直接拼接的,且囿於對預編譯的信賴,從外到裡沒有過濾。

    2.可以預編譯的地方也有可能出現問題:注入一般爆發在LIKE語句/IN語句中,因為這兩個地方的預編譯寫法都有些特殊,很多開發者懶得去搞,就直接拼接了。

    3.在SQL語句的寫法上,直接拼接比預編譯簡單太多了,沒有接觸過資訊保安的初學者寫出來的程式碼很大可能存在漏洞;就算是有經驗的程式設計師,在快速上線的壓力下,也沒有時間再去考慮資訊保安的問題。

    4.有太多有漏洞的老程式碼來不及或不能換上預編譯,只能靠WAF苟活,而WAF這種東西本身就是在使用者體驗與安全性之間的一種矛盾集合體,總有被繞過的可能性。

    最後,其實我想說的是,就新開發的系統來說,SQL注入漏洞確實越來越少了,做到這一點的不是大家的安全意識增強,都知道使用預編譯了,而是大量成熟的框架與元件,其本身自帶有對安全性的考量,使開發者無感知的寫出較為安全的程式碼。

    SQL注入作為漏洞之王不會就此消失,漏洞從來都是環環相扣,褪去網路堅韌的防禦,內網脆弱無比,拼接來自於人的懶惰,且永遠不會缺席。

  • 中秋節和大豐收的關聯?
  • 我最近喜歡上一個女孩,她也喜歡我。但是我發現她和別人也有曖昧關係,本來想問她叫她解釋。我該問嗎?