SQL注入點攔截了單引號?
并不是,太天真了。sql注入的方法有多種,不一定非得用單引號。SQL注入一般用于表單提交,尤其是登錄表單,通過提交一些sql語句的組合,使后臺驗證邏輯出錯,順利進入后臺。
方法一:
先猜表名
And (Select count(*) from 表名)<>0
猜列名
And (Select count(列名) from 表名)<>0
返回正確的,那么寫的表名或列名就是正確,如果服務器沒有關系錯誤提醒,就會將錯誤的sql語句信息打印出來,從而就獲取到真正的表名、列名。
方法二:
跳過登錄后臺
常見的 ' or 1='1
比如后臺驗證就變成
select name,pass from tbAdmin where name='' or 1='1' and pass='123456';
1='1'為真,這判斷就一直成立。
當然還有很多種sql注入方式,大都是利用sql語句直接查詢的漏洞,或者報錯信息。
只攔截了單引號還不夠,還有空格,等號等等一些符號。而且項目中千萬避免https://www.b5b6.com/qianduan/提交的表單直接用原生sql語句查詢,盡量用框架封裝的方法,這樣能很大程度上減少被sql注入的風險。畢竟https://www.b5b6.com/qianduan/提交的數據都是不可信的。
上一篇有哪些關于黑客的電影