亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

sessionId怕跨域問題,而token不怕的原因是不是因為前者是基于cookie自動攜帶而后者是手動攜帶?

sessionId怕跨域問題,而token不怕的原因是不是因為前者是基于cookie自動攜帶而后者是手動攜帶?

阿波羅的戰車 2019-01-31 01:23:07
一般來說sessionId有跨域安全問題,而token卻沒有,我的理解是sessionId怕跨域問題,而token不怕的原因是不是因為前者是基于cookie自動攜帶而后者是手動攜帶?當有跨域攻擊時,受害者點擊鏈接會自動帶上瀏覽器cookie上的sessionId而token一般是程序員在程序中寫ajax時,手動放在參數或者header中的,所以沒有跨域安全問題?如果token也放在cookie里,會和sessionId一樣出現跨域安全問題對不對? 那么像這種 https://blog.csdn.net/moshowg... zuul網關開放跨域應該沒有安全問題吧?
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

我也是這么覺得。

查看完整回答
反對 回復 2019-03-01
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

基于cookie的認證都存存在跨越安全問題,不管是自動的方式還是手動的方式,只不過token的方式是通過和認證中心經過幾次重定向,將token傳遞給了其他域,題主參考下sso的認證過程就知道了,oath的認證過程也差不多。

查看完整回答
反對 回復 2019-03-01
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

不知道你說的跨域安全,是不是指CSRF?

如果是,那就先搞清楚csrf什么回事:

  1. 用戶正常登錄了A網站,生成了sessionid或者token
  2. 用戶在未退出A時,訪問了惡意站點B,B通過類似 <img src="A/xxx">的方式,偷偷以“用戶身份”訪問了A

再來看問題:

  1. 只要你登錄了,就獲得登錄憑證(sessionid或token),這個憑證是你下次訪問要傳回給服務端的,所以,你要“保存”在客戶端。
  2. 傳統做法,sessionid是放在cookie的,這樣,你下次訪問,瀏覽器就會“自動帶上”,但并不是“必須這樣做的”。你了解session的原理后,sessionid同樣可以放在header(甚至是get參數或post參數),只是這樣,瀏覽器就不會自動帶,需要你手工傳了,這跟token放在header同一個道理。
  3. 回傳的問題,通過src的方式隱藏調用,瀏覽器默認是會自動帶上cookie的,但通過ajax調用默認好像是不帶的(我寫前端少,這個不確認)

所以,token放cookie其實有兩層意思,一是保存在客戶端cookie,二是 認證協議里的定義(傳輸方式)。 比如你將token放cookie了,但服務端認的還是header里的token,那你請求時自動在cookie里帶上來的token是沒有用的。

查看完整回答
反對 回復 2019-03-01
  • 3 回答
  • 0 關注
  • 2229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號