ibatis之sql注入

字號:


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