個人簡單理解:
1、XSS最簡單的理解就是可以在表單提交的內容上嵌入JS執行代碼,然后頁面渲染的時候沒有過濾時會自動執行這個腳本。
2、CSRF可以理解為當你登錄了京東,瀏覽器上保存了你登錄的Cookie,此時你有打開另一個網頁,這個網頁上有一個IFrame只想你了你的京東后台訂單列表的,那么這個IFrame就能正常讀取你訂單的數據,注意,這個數據實在另一個網頁上讀取的。
3、Cookie來說,現在的瀏覽器基本都已經杜絕了JS能正常讀取其它站點的Cookie,如果要獲取只能在當前網頁上嵌入其它代碼來獲取本站的Cookie。
4、綜上所述,其實CSRF離不開Cookie,並不是說要獲取Cookie,而是利用瀏覽器保存已有的Cookie數據來做跳轉,而XSS惡意代碼執行是輔助CSRF去執行,當然,XSS還有可能有其它用途,比如挖礦等等。現在基本上都不用打開另外一個頁面去獲取Cookie,結合XSS在本站下自動執行腳本動作,也不用獲取Cookie,直接提交時默認就已經帶上了本站的全部Cookie信息。所以這個XSS是實際操作CSRF是一個攻擊概念。
解決方式簡單理解:
1、Cookie上有幾個屬性能杜絕JS獲取本地Cookie,比如:HttpOnly。Secure是只能在SSL下使用。現在的瀏覽器都已經杜絕了跨站點通過JS獲取Cookie的,所以不存在能在B站獲取A站的全部Cookie。
2、CSRF的防御可以網頁上增加tooken的機制,比如Java框架提供了OWASP-CSRFGuard,再比如使用JWT這些token認證。同樣在渲染的HTML內容上增加meta頭限制使用IFrame等。
3、XSS的功能可以用簡單過濾提交內容來限制。
5、綜上所述,其實主要是增加其復雜性,但如果從網絡運營商上就已經控制了你的網絡入口,那么你請求的任何內容都經過網絡運營商時,這些內容都可以被難道,從而偽造出可提交的數據。當然一些通過SSL可以比較有效的防范,但依然還是有辦法實現的。所以,這些功能只能做到99%的防范,不能完全杜絕。
Cookie:
https://segmentfault.com/a/1190000004556040
https://www.owasp.org/index.php/HttpOnly
http://www.cnblogs.com/dynasty/archive/2012/01/29/2330913.html
http://xmong.iteye.com/blog/1566102
http://www.freebuf.com/articles/web/42802.html
CSRF:
https://baike.baidu.com/item/CSRF/2735433
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
https://www.cnblogs.com/shytong/p/5308667.html
http://netsecurity.51cto.com/art/201104/256035.htm
http://blog.csdn.net/stpeace/article/details/53512283
http://www.freebuf.com/articles/web/55965.html(CSRF攻擊示例,結合XSS實現)
http://www.freebuf.com/vuls/131691.html
https://www.cnblogs.com/lovesong/p/5233195.html
https://segmentfault.com/q/1010000000713614
https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/
https://www.zhihu.com/question/39011147
http://blog.csdn.net/xeseo/article/details/9467099(Java OWASP-CSRFGuard框架)
https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project(Java OWASP-CSRFGuard框架)
http://xmong.iteye.com/blog/1564261
XSS:
http://xmong.iteye.com/blog/1565910
https://baike.baidu.com/item/XSS/917356
http://blog.csdn.net/ghsau/article/details/17027893
http://www.freebuf.com/articles/web/40520.html
https://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html
https://www.zhihu.com/question/24918141
https://www.cnblogs.com/dsky/archive/2012/04/06/2434768.html
http://www.freebuf.com/articles/web/42727.html
http://www.freebuf.com/sectool/42722.html
http://bbs.51cto.com/tag-XSS.html