簡體   English   中英

CSRF表格-您可以更改令牌嗎?

[英]CSRF Forms - You can change the token?

只是想問一個關於帶有CSRF令牌的PHP和HTML表單的一般問題,因此您生成一個隨機令牌並將其存儲在PHP的會話變量中,並以HTML表單的隱藏字段輸出。

但是,如果在這種情況下,我的意思是正確的:

  • 1個名為Bob的人正在查看secureform.php頁面
  • 同一個人查看badform.php頁面

如果Bob轉到badform.php頁面並生成了令牌,然后他們轉到secureform.php並從secureform.php獲取令牌, badform.php通過inspect元素將其放入badform.php並提交,就在那里一種繞過CSRF的方法正確嗎?

我可以就此是否有效以及如何防止此類情況獲得一些反饋嗎? 如果有道理,如果沒有讓我知道,謝謝!

Bob可能正在做您不想要的事情,但這不是CSRF令牌要防止的事情。

同一場景世界的跨站點請求偽造版本是其他人(稱為Eve),誘使Bob提交了badform.php 由於Eve控制了表單的內容,但是Bob隨同會話cookie或其他身份驗證信息一起提交了表單,因此Eve可以執行只有Bob有權執行的操作。

但是,如果表單需要額外的CSRF令牌,則Eve無法訪問此令牌 ,因此當他們誘騙Bob提交表單時,該表單將被拒絕。 Eve能夠驗證表單的唯一方法是誘騙Bob從secureform.php復制有效令牌,這比誘使他們提交表單要困難得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM