前言
創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元石棉做網(wǎng)站,已為上家服務(wù),為石棉各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220xss攻擊(跨站腳本攻擊):攻擊者在頁面里插入惡意腳本代碼,用戶瀏覽該頁面時(shí),腳本代碼就會(huì)執(zhí)行,達(dá)到攻擊者的目的。原理就是:攻擊者對(duì)含有漏洞的服務(wù)器注入惡意代碼,引誘用戶瀏覽受到攻擊的服務(wù)器,并打開相關(guān)頁面,執(zhí)行惡意代碼。
xss攻擊方式:一、反射性攻擊,腳本代碼作為url參數(shù)提交給服務(wù)器,服務(wù)器解析執(zhí)行后,將腳本代碼返回給瀏覽器,最后瀏覽器解析執(zhí)行攻擊代碼;二、存儲(chǔ)性攻擊,和發(fā)射性攻擊的區(qū)別是,腳本代碼存儲(chǔ)在服務(wù)器,下次在請(qǐng)求時(shí),不用再提交腳本代碼。其中一個(gè)示例圖如下所示:
CSRF攻擊:跨站請(qǐng)求偽造攻擊,CSRF是一種欺騙受害者提交惡意請(qǐng)求的攻擊,并劫持受害者的身份和特權(quán),并以受害者的身份訪問未授權(quán)的信息和功能。序列圖如下所示:
同步器Token
解決XSS攻擊和CSRF攻擊的一個(gè)推薦方法就是同步器Token,就是在post的請(qǐng)求中,增加一個(gè)token,每次請(qǐng)求到來,服務(wù)器都會(huì)驗(yàn)證請(qǐng)求中的token和服務(wù)器期望的值是否一致,如果不一致,服務(wù)器將請(qǐng)求視為非法的,整個(gè)過程的示例圖如下所示:
在spring security中如果使用的是 @EnableWebMvcSecurity而不是@EnableWebSecurity,同步器Token是默認(rèn)打開的,通過http().csrf().disable()可以關(guān)閉同步器token功能。spring security發(fā)現(xiàn)token無效后,會(huì)返回一個(gè)403的訪問拒絕,不過可以通過配置AccessDeniedHandler類處理InvalidCsrfTokenException異常來定制行為。
spring security雖然默認(rèn)是打開同步器token保護(hù)的,但是也提供了一個(gè)顯示打開的行為即http().csrf(),同時(shí)需要在html的form表單中添加以“”
如果請(qǐng)求的是json或ajax請(qǐng)求,如何使用同步器token防護(hù)那?
json請(qǐng)求的話,我們可以在header的元數(shù)據(jù)中添加token防護(hù),代碼如下所示:
...