ibatis之sql注入

字號(hào):


    今天親自試了一把,原來ibatis中的$是如此的危險(xiǎn),如果你用$的話,很可能就會(huì)被sql注入!!!
    所以:
    使用:select * from t_user where name like '%'||#name #||'%'
    禁用:select * from t_user where name like '%'||'$name$'||'%'
    解釋:
    預(yù)編譯語句已經(jīng)對(duì)oracle的特殊字符單引號(hào),進(jìn)行了轉(zhuǎn)義。即將單引號(hào)視為查詢內(nèi)容,而不是字符串的分界符。
    由于SQL注入其實(shí)就是借助于特殊字符單引號(hào),生成or 1= 1這種格式的sql。預(yù)編譯已經(jīng)對(duì)單引號(hào)進(jìn)行了處理,所以可以防止SQL注入