目前在測試跨域的問題,自己寫了兩個web做為測試,都是用sprong boot2.0寫的,分別是WebA(localhost)和WebB(abc.com)。
WebB的某一個網頁中塞了ajax發出跨域請求,並且是withCredentials:true的狀態,url設定指向WebA的API,該API能更改登入使用者的狀態。
1.先開瀏覽器至WebA完成登入(利用session紀錄登入狀態)
2.在到WebB的網頁,該網頁發出一個ajax跨域請求給WebA,WebA後臺更改了使用者的狀態。
問題來了,其實我在WebA是沒有設定跨域的(@CrossOrigin),WebB在發送跨域請求後,chrome的console是會顯示阻擋response的訊息的,但WebA的後台也已經更改了該使用者的狀態。
我該如何阻擋這種CSRF攻擊呢?
1.CORS只管要不要讓瀏覽器顯示,不管server side要不要執行。
可以試試另外用後端語言或postman去打API,保證連response都秀給你看
2.你的API為什麼可以直接打進去就改狀態?
3.CORS和csrf是不一樣的東西
4.有啟用Spring security去做權限控管嗎?