報(bào)表檢測到sql植入風(fēng)險(xiǎn)卑雁,一般是報(bào)表工具提供了通用查詢的功能募书,也就意味著sql(sql類數(shù)據(jù)集)是可以通過參數(shù)動(dòng)態(tài)拼接的。如where子句:
Select … from T where ${w}
正常使用下w可以 “status=1”测蹲、“1=1”等靈活的條件莹捡,但同時(shí)存在很大的安全隱患。
比如w為“1=0 UNION select … from user”時(shí)扣甲,user表數(shù)據(jù)就完全泄露了篮赢。
解決這個(gè)問題大概兩種方式:
1、 寫成很牛X的sql琉挖,考慮到最壞情況下启泣,攻擊者依然無法攻擊。
2示辈、 對(duì)參數(shù)值過濾寥茫,判斷有風(fēng)險(xiǎn)的處理掉,甚至直接不讓報(bào)表繼續(xù)執(zhí)行矾麻。
第1種方式太難了纱耻,并且也會(huì)把sql搞的特別復(fù)雜,在報(bào)表工具的sql植入風(fēng)險(xiǎn)中有詳細(xì)的過程介紹险耀。
第2種就相對(duì)好掌握弄喘,報(bào)表工具一般也會(huì)提供防止sql植入的方案,報(bào)表的SQL植入風(fēng)險(xiǎn)及規(guī)避方法中講解了通過配置敏感詞檢查功能甩牺,當(dāng)遇到非法關(guān)鍵字的時(shí)候蘑志,報(bào)表終止執(zhí)行以保安全。