需要一些关于AngularJs和Slim PHP之间API调用的csrf令牌的指导吗
我正在构建一个移动应用程序,使用AngularJS作为前端,SlimPHP作为连接Mysql的API提供程序。前端和后端位于不同的域上需要一些关于AngularJs和Slim PHP之间API调用的csrf令牌的指导吗,php,mysql,angularjs,Php,Mysql,Angularjs,我正在构建一个移动应用程序,使用AngularJS作为前端,SlimPHP作为连接Mysql的API提供程序。前端和后端位于不同的域上 因此,一个用户从Angular发布登录表单 PHP捕获它并对用户进行身份验证,然后生成一个随机令牌 然后,该令牌存储在数据库(用户表)中,并以Json格式传递回Angular Angular将令牌存储在cookie中 因此,在从Angular到API的每一次$http调用中,我都希望在头中嵌入令牌,以便PHP可以再次验证DB user表,如果调用是合法的 我
- 因此,一个用户从Angular发布登录表单
- PHP捕获它并对用户进行身份验证,然后生成一个随机令牌
- 然后,该令牌存储在数据库(用户表)中,并以Json格式传递回Angular
- Angular将令牌存储在cookie中
我想知道这是否是一个安全的解决方案 您需要研究JWT(json web令牌)这个问题有点自以为是,不太适合StackOverflow,但是,我的意见是:我不会将CSRF令牌存储在客户端的cookie中,也不会存储在服务器端的数据库中。最好的CSRF保护形式是服务器可以为客户端执行的每个请求发出唯一的CSRF代码。CSRF令牌通常仅限于表单提交,让服务器为特定表单发出唯一的CSRF代码非常简单。angular在
$http
api中已经有一个内置令牌系统头。阅读文档以获得回复。如果CSRF不适合这里,您会推荐什么用于API调用验证?或者你介意给我指一下正确的方向吗?据我所知,如果我将服务器生成的令牌保存在客户端的cookie中,某人就可以访问cookie并假装是用户提交请求?可能有用吗