iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
Modern Web

暑假旅程之自學Django系列 第 13

[Day13] 補充說明 – csrf

  • 分享至 

  • xImage
  •  

今天要來補充一下Day9 – views有說明到的csrf,雖然這些東西某某百科都有,那我會特別補充的原因,是因為這些東西,今天即使不是使用Django這個網頁應用框架,只要未來會接觸到網頁的部分,可能都還是會遇到,所以這邊我還是跟大家簡單介紹一下。

csrf:全名Cross-site request forgery,我們把每個單字拆開來看cross(翻越、通過)、site(地點、位置)、request(請求、要求)、forgery(偽造品、偽造),這裡我分享這種學習每個單字的方式來理解,既可以學習單字,也可以了解整個名稱的意涵,希望不適應的夥伴們見諒,我會用這種方式,是因為我覺得很多東西可以去感受一下他原文的說明而不是翻譯,某某百科中譯是跨站請求偽造,我覺得很好也沒錯,可是我覺得把單字意思弄懂,有時候會比翻譯能夠更懂得他的原意。

翻譯了這麼多,csrf就是有人從非使用者的位置(Cross-site),偽造(forgery)了使用者的請求(request),用現實來比喻就好像大學點名幫忙代點,同學A幫同學B點名,就是你偽造了同學B在教室的訊息給教授,教授以為你是同學B,實際上你是同學A,這裡不討論特殊的狀況(臉、身體特徵)等。

那這樣會產生什麼樣的問題,教授以為我是同學A,如果我不開心我就亂講話、打教授一拳就跑,反正教授以為是同學A,再簡單來說就是別人裝成是你,聽起來應該不是甚麼好事情,那我們要怎麼預防呢?

這時候我們就會產生一個通關密語(token),那token是甚麼呢,夥伴們別急~~ 我們今天先聊聊csrf ,過幾天我在幫你們補充,簡單來說就是,今天當我認識一個人,我們第一聊天的時候約定一個通關密語,沒有人知道的通關密語只有我們兩個人知道,作為我傳遞訊息(request)的一個依據,約好以後在傳遞訊息的時候都會夾帶著這個獨一無二的通關密語,這樣對方就可以確認是不是本人了。

畫了一張簡陋的示意圖,希望能夠幫助大家理解,然後眼睛不會痛,會痛的要原諒我,那今天補充就先到這裡啦~~


上一篇
[Day12] 註冊API – urls之user app資料夾
下一篇
[Day14] 補充說明 – Cookie、Session和Token之Part1
系列文
暑假旅程之自學Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言