簡體   English   中英

CSRF和RESTful API(symfony2,php)

[英]CSRF and RESTful API (symfony2, php)

我正在使用php / symfony2開發RESTful API。

Symfony2具備開箱即用的CSRF保護功能,並且在使用常規表單數據時可以正常工作(它將CSRF令牌傳遞到表單,並且在回發時它期望嵌入在表單中的令牌相同)。

但是,如果您開發RESTful API,則此解決方案不適合您的目的,因為我的backend <-> frontend之間的通信完全基於JSON。 因此,我禁用了CSRF。

我知道沒有CSRF令牌是不安全的,所以我想知道使用帶有RESTful API的CSRF的最佳方法是什么。

想到的一個想法是擁有特定的URL,例如/ api / generate / csrf,可以由前端調用,然后將令牌附加到json請求。 聽起來並不是最安全的方法,因為技術上任何人都可以生成令牌。

開發RESTful API時,解決CSRF問題的最佳方法是什么。

干杯,理查德

請記住,只有當REST客戶端使用基於會話的身份驗證時,才需要CSRF保護,否則CSRF保護將無濟於事。

如果您的請求確實使用基於會話的身份驗證,則將CSRF令牌作為標頭包含在內。 就像是:

CSRF-Token: dfsa0jr3n2io20a;

我也在解決這個問題。 這是我最初的問題

到目前為止,我已經有了一個理論上的解決方案,但是我不確定它是否會起作用。 也許有人可以發表評論。

  1. 將CSRF TOKEN添加到JS應用程序可讀的API響應cookie中;
  2. JS應用程序將其與請求一起作為X-CSRF-TOKEN標頭值發送;
  3. 驗證API上的CSRF令牌。

暫無
暫無

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

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