如何保护直接角度获取函数

时间:2016-11-30 15:33:23

标签: angularjs laravel security request

我有一个angularjs控制器,我可以调用许多这样的报告:

if(reporttype==21){
$scope.framesrc={src:"http://localhost/myapi/report21Service"+$scope.brandid}
}
if (reporttype=22_}
...
}

我无法在此处创建帖子请求,生成报告和长篇大论。

我的问题是,无论如何,如果他们不在网站之外,是否可以避免用户拨打此请求?因为现在如果你把链接放在任何标签中,它将返回我的所有数据。除了post functinons和东西之外还有什么方法吗?比如指定请求的来源或类似的东西。

3 个答案:

答案 0 :(得分:1)

您必须在laravel服务器上实施CSRF保护。这是一个简单的概念,您的服务器会在登录时生成CSRF token,当您访问api时,您将使用request附加令牌。

有关详细信息,请参阅this。和this在laravel上实施CSRF

答案 1 :(得分:0)

如果您具有身份验证,则可以使用令牌对用户进行身份验证。 另一种解决方案可能是阻止服务器中的跨域访问。

答案 2 :(得分:0)

好的解决了,

首先在用户登录后,我在会话中获取用户ID,然后在访问api时,如果isset session userid返回结果,则返回错误。现在无需登录即可访问项目外的api。

PS:如果用户登录并尝试另一个id,对于其他用户,在该功能的开头有条件,如果他在返回其品牌的查询结果之外传递参数,则报告返回也是一个错误。