我正在构建一个简单的AngularJs Web应用程序,该应用程序可以使用Flask构建REST Api。根据我的理解,有几种方法可以防止CSRF,其中一种方法是在用户进行身份验证时发送回CSRF令牌。
如果我想让Web应用程序和想要将其用作开发API的用户使用我的API,那么我是否需要为允许POST请求的每个端点使用2个端点[一个用于需要CSRF的应用程序token + auth令牌和一个只需要api访问密钥的开发人员]?
答案 0 :(得分:0)
不一定。从广义上讲,您有两种选择:
通过运行Web应用程序的任何服务器端容器代理REST API。然后,您的Web应用程序代理可以实现CSRF保护并将API密钥插入API请求中。
< / LI>检查所有API请求的引荐来源标头。虽然这要求您的Angular SPA和API共享相同的身份验证机制,但您必须使用比API密钥更复杂的功能,例如OAuth。