簡體   English   中英

REST API客戶端僅在HTML / JS中

[英]REST API Client only in HTML / JS

是否可以僅針對REST API在HTML / JS中創建客戶端並阻止CSRF?

這是可能的。

CSRF預防通常是針對簡單網站而不是API進行的,因為API通常旨在由其他網站訪問。 隱藏的碎屑和令牌是防止這種攻擊的最常見方法,在消耗性API上無法正常工作。

您可能需要的是一種良好的主身份驗證機制。 易受CSRF攻擊的Web應用程序的主要弱點之一是cookie。 如果您的API不需要它們,則可以使用其他身份驗證機制(例如OAuth或HTTP Digest)來解決,因此外部用戶仍然可以安全地使用該API(無需進行討厭的驗證)。

在JS客戶端應用程序下,HTTP Auth Basic和OAuth 2.0都是可行的。 這里有OAuth2的演示: https : //gist.github.com/563893

Twitter在主要網站內部使用了自己的公共API,因此有證據表明,像這樣的事情是可能的,盡管我不確定它們具體如何阻止外部CSRF。 每個請求都是由接收方發出的(位於此處: https : //api.twitter.com/receiver.html ),授權令牌由cookie傳輸。 您可能需要進一步研究其實現。

暫無
暫無

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

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