2015-06-22 74 views
1

我正在使用play-2.2.3來開發API。這些API可以通過PHP/JQuery前端訪問。簡單的例子是一個resetPassword API。從PHP中,當我調用重置密碼API時,它應該受CSRF令牌的保護,以便有人不能簡單地調用該API並重置其他人的密碼。 使用Scala呈現表單(由Play-2.2.3提供)的缺點是,有沒有辦法手動將單次使用的服務器端令牌顯示爲重置密碼錶單中的隱藏表單字段,並在發佈請求中得到驗證由服務器提交表單?如何使用PHP前端提供的play framework(play-2.2.3)提供的CSRF令牌?

+0

設置應用程序的哪個部分創建用戶會話:PHP還是Play?您的Play API如何受到直接訪問保護?是否爲您的PHP和Play應用程序設置了跨源資源共享(CORS)配置? –

回答

1

想通了如何做到這一點。

  1. 在戲劇方面,不要把任何CSRF設置在application.conf
  2. 使用@AddCSRFToken註解上,將設置一個名爲PLAY_SESSION=.....-csrfToken=........
  3. 在這種需要是API調用的cookie的方法驗證完全通過PLAY_SESSION cookie,並在queryString中傳遞csrfToken=.....
相關問題