Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅HTML/JS格式的REST API客户端_Javascript_Api_Rest_Client_Csrf - Fatal编程技术网

Javascript 仅HTML/JS格式的REST API客户端

Javascript 仅HTML/JS格式的REST API客户端,javascript,api,rest,client,csrf,Javascript,Api,Rest,Client,Csrf,是否可以仅在HTML/JS中为REST API创建客户端并阻止CSRF?这是可能的 CSRF预防通常针对简单的网站,而不是API,因为API通常旨在被其他网站访问。隐藏的碎屑和代币是防止此类攻击的最常见的方法,在可消费API上无法正常工作 您可能需要的是一个好的主身份验证机制。易受CSRF攻击的web应用程序的主要弱点之一是cookie。如果您的API不需要它们,那么使用另一种身份验证机制(如OAuth或HTTP Digest)可能是答案,这样外部用户仍然可以安全地使用API(无需令人讨厌的cr

是否可以仅在HTML/JS中为REST API创建客户端并阻止CSRF?

这是可能的

CSRF预防通常针对简单的网站,而不是API,因为API通常旨在被其他网站访问。隐藏的碎屑和代币是防止此类攻击的最常见的方法,在可消费API上无法正常工作

您可能需要的是一个好的主身份验证机制。易受CSRF攻击的web应用程序的主要弱点之一是cookie。如果您的API不需要它们,那么使用另一种身份验证机制(如OAuth或HTTP Digest)可能是答案,这样外部用户仍然可以安全地使用API(无需令人讨厌的crump验证)

HTTP Auth Basic和OAuth 2.0在JS客户端应用程序下都是可行的。这里有一个OAuth2的演示:


Twitter在主网站中使用自己的公共API,因此有证据表明类似的事情是可能的,尽管我不确定它们具体如何阻止外部CSRF。每个请求都由接收者(位于此处:)发出,授权令牌由cookie进行隧道传输。您可能需要进一步研究它们的实现。

如何在客户端上存储密钥?(我的客户是一个浏览器)