2007/6/14

Anti-Hack 的解決方案

要對付XSS, SQL injection,How to add validation logic to HttpServletRequest這個網站提供了一個包裝HttpServletRequestWrapper的方式,可以封裝HttpServletRequest,然後再以filter的方式,把這個wrapper套用到 /* 所有網址上。

這篇文章提到的canonicalize與HTMLEntityEncode,我們並沒有採用,其實我還不大瞭解canonicalization的原理,或許在瞭解後會加上去。我們是利用regular expression pattern matching的方式,將一些已知基本的攻擊字元替代掉,也就是這篇文章BadInputFilterValve.java提到的方式,直接用String.replaceAll的方法,將reqest裡的參數都處理掉,把 \" 取代成 " ,把 document(.*)\\.(.*)cookie 取代成 document.cookie 。