我有一个angularjs控制器,我可以调用许多这样的报告:
if(reporttype==21){
$scope.framesrc={src:"http://localhost/myapi/report21Service"+$scope.brandid}
}
if (reporttype=22_}
...
}
我无法在此处创建帖子请求,生成报告和长篇大论。
我的问题是,无论如何,如果他们不在网站之外,是否可以避免用户拨打此请求?因为现在如果你把链接放在任何标签中,它将返回我的所有数据。除了post functinons和东西之外还有什么方法吗?比如指定请求的来源或类似的东西。
答案 0 :(得分:1)
您必须在laravel服务器上实施CSRF
保护。这是一个简单的概念,您的服务器会在登录时生成CSRF token
,当您访问api
时,您将使用request
附加令牌。
答案 1 :(得分:0)
如果您具有身份验证,则可以使用令牌对用户进行身份验证。 另一种解决方案可能是阻止服务器中的跨域访问。
答案 2 :(得分:0)
好的解决了,
首先在用户登录后,我在会话中获取用户ID,然后在访问api时,如果isset session userid返回结果,则返回错误。现在无需登录即可访问项目外的api。
PS:如果用户登录并尝试另一个id,对于其他用户,在该功能的开头有条件,如果他在返回其品牌的查询结果之外传递参数,则报告返回也是一个错误。