首先,來聽首歌吧
後來才發現魏如萱也是一個曲風很多變的創作歌手,剛聽到這首歌的時候覺得超級驚喜,在台灣流行音樂沒聽過像這樣的曲風,希望大家喜歡嚕~
今天來到這篇的第 9 章,剛好之前聽到 Request Forgery 這個名詞覺得困惑,但沒有深入研究,今天來粗淺的探討一下
網路上有種攻擊方式叫做 CSRF (Cross Site Request Forgery),翻成中文的話是跨站請求偽造
這種攻擊方法的概念是讓使用者無意間做了某件事,通常是點了一個連結,或者按了一個按鈕,讓有心人士偽造出使用者本人發出的 request
這邊也來簡單舉個例吧
比方說今天有個惡意人士做了一個下載的連結 www.qoo.com/123456
,裡面放的都是一些壞壞的東西
為了讓大家進去下載他們不想下載的東西,就做一個很吸引人的連結,像是恭喜你中大獎或者你是第 100 萬個用戶要送你哀鳳之類的,連結可能長這樣
<a href='www.qoo.com/123456' >請點這裡拿取你的哀鳳!</a>
一點擊,真的會下載這些惡意程式到電腦裡面因此就中招了
這只是個簡單的例子,當然真正要騙人的還會做得更精美,讓你完全不知道自己中招,接下來介紹 Rails 的防禦機制
Rails 的防禦機制是加上 CSRF token,在你送出表單的時候,會隨機產生一組 token,要進入這個連結,Rails 會跟自己的 session 內容比對,確認這組 token 是不是由他產生的,如果不是就會擋掉,防止有心人士蓄意更改網站內容
如果有使用 form builder 的話,應該可以在那個頁面看到像是以下的程式碼:
<input type="hidden"
value="..."
name="authenticity_token"/>
上面這段就是提到的 CSRF token 囉!
其中的 value 看起來像是很長的一串亂數,這就是 Rails 生出來的,而且每次重新整理都會更新
如果想更了解 CSRF 可以參考這篇文章,裡面寫得非常詳細,還有提供更多的保護機制~
參考資料
Rails Guide
本文章同步分享於 http://anthonychao.site/