iT邦幫忙

0

Cookie的名稱與Session是否能防止cors攻擊?

  • 分享至 

  • xImage

大家好,
我最近在研究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。

這樣有哪些,資安上的疑慮呢?

看更多先前的討論...收起先前的討論...
obarisk iT邦研究生 2 級 ‧ 2022-03-26 16:20:56 檢舉
後端要怎麼 POST 給前端?
只有伺服器端可以接收 POST

理論上要在用戶端上開一個網頁伺服器接收用戶端的請求也是可以
obarisk iT邦研究生 2 級 ‧ 2022-03-26 16:29:47 檢舉
cookie 的機制。是由瀏覽器實作的。
基本上,cookie跟 domain 有關

chinatimes 的伺服器只會收到 chinatimes 的 cookie.
facebook 的伺服器只會收到 facebook 的 cookie.

由於 chinatimes 的頁面包含了到 facebook 的內容(或是沒有內容,只有請求)
所以在瀏覽器的開發頁面會看到關於 facebook 的 cookie
obarisk iT邦研究生 2 級 ‧ 2022-03-26 16:32:31 檢舉
你可以用"網路"這個分頁檢查瀏覽器幫你送出什麼 cookie。
當然也可以在伺服器端檢查瀏覽器送了那些 cookie 給你。
obarisk iT邦研究生 2 級 ‧ 2022-03-26 16:39:19 檢舉
用 token 要考慮伺服器端怎麼驗證持有 token 的人是不是原來的人
或是前端要怎麼保護 token 不會被其它人拿去用
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
whitefloor
iT邦研究生 2 級 ‧ 2022-03-25 16:04:40
最佳解答

卡位等大神解答

==============

我來回答一下
下午比較忙沒有想就送出了,抱歉

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

Homura iT邦高手 1 級 ‧ 2022-03-25 16:08:08 檢舉

不是有追蹤功能幹嘛不用@@

whitefloor iT邦研究生 2 級 ‧ 2022-03-25 16:35:36 檢舉

有這功能 抱歉

whitefloor iT邦研究生 2 級 ‧ 2022-03-25 19:26:31 檢舉

更新

0

我覺得,有一些名詞你要先了解。才能明白你做的事情對還是不對。

所謂的 CORS 指的是「跨域资源共享」。
在一般來說預設是不允許跨域
所以認真來說,這是一種伺服器的設定。並非是由程式來處理的。
(雖然請求端的後端可以自已送標頭過來允許請求)

而你在問的東西,基本來說因為是屬於CSRF這一類的東西才對。
也就是發送再多加安全或驗証碼來確定是否可以接受這些資料。

而後面的token又跟上面兩者不一樣了。
認真來說,token只是一個臨時的通行証。時間到了就沒了。
你只能換發或是重新申請。

上面來說,其實並沒回答你的問題,因為你的問題真的很難回答。
也不知道該怎麼回答。你或許先去研究這些名詞的真正意義後。
再來問會比較好。

我要發表回答

立即登入回答