2009年11月26日 星期四

降低XSS危害的HTTPOnly Cookies


一般的WEB AP開發者,多少都會有與XSS的奮戰經驗,最近在survey OWASP TOP10 2010的時候,同事Nicky提供了HTTPOnly這個預防方式
HTTPOnly這個cookies值最早是由MS在2002年的IE6 SP1來實做,詳細的介紹可參考owasp的網站
http://www.owasp.org/index.php/HTTPOnly
透過了這項設定,browser將會禁止client端的script來read或write cookie的值,client端企圖讀取cookie值時僅會回覆空值,因此提供了一定的安全性保護
Java也support這項設定 (Sun Java EE supports HttpOnly flag in Cookie interface since version 6 (Servlet class version 3) ),可直接利用Methods setHttpOnly
而舊版本也可透過設定客製化的header


String sessionid = request.getSession().getId();
response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; HttpOnly");


而在瀏覽器的支援度方面,目前大部分的Browser都支援:
IE7
IE8
FireFox 3.0.0.6+
另外一點要注意的是
An attacker could still read the session cookie in a response to an XmlHttpRequest.

沒有留言: