大家好,
我最近在研究XSS跟cors攻擊,有幾個問題想請問大家。
如果有錯,還麻煩大家指點。
(1)CDN會自動夾帶cookie,例如<script src="......"></script>
,除非使用crossorigin,<script src="" crossorigin=""></script>
,才不會夾帶cookie?
如上圖,在chinatime.com的網頁,結果也有facebook跟其他的cookie,就是因為chinatime.com的網頁裡,有引入facebook的CDN的緣故?
(2)如果使用sessionStorage,則不會受到cors攻擊?因為分頁2,不會有分頁1的sessionStorage的資料
---更新---
想再問一個問題:
目前我的專案是,登入後,後端(php)會post一個token給前端(vue)。
前端存放在session裡,沒有放在cookie裡。
如果要修改資料,都必須把token帶上,利用axios post 一個formdata給後端。後端再去跟伺服器確認token。
這樣有哪些,資安上的疑慮呢?
卡位等大神解答
==============
我來回答一下
下午比較忙沒有想就送出了,抱歉
XSS是注入攻擊,在你前端網頁上可以input的地方注入html或js
這我有實務經驗,用的是react
react會自動幫你把input的敏感字元過濾掉,所以實際上執行是不會被注入的
但是有種情況例外
如果人家直接掃到你的api跟port在資料庫裡面直接注入html
當你react用dangerouslysetinnerhtml讀取API給你的value就會被注入
XSRF的部分,我沒有做過
但目前已知的做法是伺服器會在你連線的時候做出一組密碼然後加鹽放在你的cookie給你
接著你再提交表單時就會因為這組密碼的唯一性無法重複提交
關鍵是在於你如何驗證,而不是用了什麼方法儲存token
可以參考 https://willh.gitbook.io/build-web-application-with-golang-zhtw/09.0/09.1
我覺得,有一些名詞你要先了解。才能明白你做的事情對還是不對。
所謂的 CORS 指的是「跨域资源共享」。
在一般來說預設是不允許跨域
所以認真來說,這是一種伺服器的設定。並非是由程式來處理的。
(雖然請求端的後端可以自已送標頭過來允許請求)
而你在問的東西,基本來說因為是屬於CSRF這一類的東西才對。
也就是發送再多加安全或驗証碼來確定是否可以接受這些資料。
而後面的token又跟上面兩者不一樣了。
認真來說,token只是一個臨時的通行証。時間到了就沒了。
你只能換發或是重新申請。
上面來說,其實並沒回答你的問題,因為你的問題真的很難回答。
也不知道該怎麼回答。你或許先去研究這些名詞的真正意義後。
再來問會比較好。