小编Iul*_*ici的帖子

Symfony2 RESTful API + AngularJS

我一直在研究一个基于Symfony2(用于后端)的电子商务项目和用于前端的AngularJS.目前,Symfony部分仅用作API,它具有三个不同的用户级别(访客,客户和管理员).可以在系统内完成的不同操作(如添加/删除数据)通过以下方式得到保护:

1)具有用户角色/访问控制的Symfony2防火墙
2)额外的JMS安全性(@PreAuthorize表达式)

对于安全的部件,一切都按预期工作,我对工作方式非常满意.

问题:

API的某些部分是公开的(例如检索产品信息,类别等).我正在使用Ajax调用我的API检索Angular中的此类数据,该API调用JSON格式的数据.一个例子是:

/ API /产品/ /?页= 1&得到-所有计数= 10&排序[ID] = ASC

问题是任何人都可以在浏览器中查看请求并复制路径并访问所有数据(例如所有产品),并且可以只下载所有信息的JSON.虽然这些数据是"公开的",但我不想让其他人轻易"窃取"我的数据.

想法和可能的解决方案

1)我正在查看JWT(Json Web Token)标准,尝试保护对我的API的公共调用,并以这样的方式实现它,即我为网站上的"真实"用户生成令牌,并且这样的限制直接访问公共API链接.

你怎么看?这是一个可能的解决方案吗?

2)我还在阅读StackOverflow上的其他一些问题,我可以从请求中检查HTTP_X_REQUESTED_WITH标头,但我们都知道攻击者很容易欺骗它.

3)最后,我在这里阅读了类似于"解决方案"1)的方法:http://engineering.talis.com/articles/elegant-api-auth-angular-js/但我不完全确定这适合我的目的.

补充说明:

  • 我不想让这个防弹,但我也不想让人们选择点击2个按钮并获取我的所有数据.我知道最终所有信息都可能被"窃取"(例如:通过使用网络剪贴板),但是"保护"系统的方式是人们必须做出一点努力才是我的想法.
  • 在这个阶段我无法真正重新模拟我的API,但任何想法都会受到赞赏

感谢您抽出宝贵时间阅读我的问题,我期待着您的反馈.

php api symfony angularjs

7
推荐指数
1
解决办法
1571
查看次数

标签 统计

angularjs ×1

api ×1

php ×1

symfony ×1