在專案中,很多時候如使用mybatis等我們用sql拼接或者直接使用sql語句運算元據庫時,就有可能遇到sql盲注的問題
例如,如果我們的sql語句為select * from menu where name= #
此時,如果我們傳過來的name引數為『』 or 1=1
,此時就可以無視條件查詢所有的menu
通過在引數中插入非法的字元實現對資料庫表和條目進行非法的檢視、修改或刪除操作,這就是sql盲注
我們可以通過filter來過濾非法的引數,從而實現阻止sql盲注,**如下
@webfilter
("/*"
)public
class
sqlfilter
implements
filter
@override
public
void
dofilter
(servletrequest request, servletresponse response, filterchain chain)
throws ioexception, servletexception }if
(sqlvalidate
(sql)
) chain.
dofilter
(req,resp);}
private
boolean
sqlvalidate
(string str)
}return
false;}
@override
public
void
destroy()
}
使用過濾器(Filter)解決亂碼問題
1.第一種用法 使用xml配置檔案 配置檔案,在web.xml中寫入如下 myfilterconfig com.zzz.myfilterconfig encoding utf 8 在servlet中寫入如下 request.setcharacterencoding this.getservletco...
sql盲注 解決 DNSLOG 盲注簡單利用
oxo1 前言 眾所周知盲注查詢資料賊慢,利用 dnslog 就可以快速解決這個問題,但是利用條件也挺雞肋的。具體原理請谷歌 1 secure file priv 不能為 null 2 支援 windows,不支援 linux oxo2 工具 oxo3 mysql 1 獲取當前資料庫 and loa...
全域性過濾器解決編碼問題
為了解決每次get或者post方式提交資料的時候,編碼解碼方式不同導致亂碼的問題,直接在過濾器中自動過濾 新建過濾器filter public class globaldecodefilter implements filter override public void dofilter servl...