symfony - “API 优先”安全最佳实践

标签 symfony csrf restful-architecture

我正在为我参与的一个项目开发一个 API。该 API 将由 Android 应用、iOS 应用和桌面网站使用。几乎所有 API 都只有注册用户才能访问。该 API 允许通过 WSSE 进行身份验证,这对于移动应用程序来说非常有用,但对于网站来说就不太好了。但是,我正在使用 Symfony2 来开发 API,并且我已将其配置为允许通过 WSSE 和/或 session /cookie 身份验证(具有公共(public)安全上下文的多个防火墙,如果您感兴趣的话)访问 API。

采用这样的 API 优先方法,我担心事情会被滥用。以我的注册方法为例。我只希望它被应用程序或网站使用。然而,没有什么可以阻止有人编写一个简单的脚本来通过虚假注册来攻击 API。然后是对 CSRF 的担忧。由于登录用户可以访问该 API,因此存在被利用的风险。

我不希望 API 公开,但我不知道这是否可能,因为网站将使用它。我可以做些什么来消除(或减少)风险和漏洞暴露?

亲切的问候。

最佳答案

对于强制注册问题,您可以为 API 调用启用“速率限制”。

这个blog post感谢 RateLimitBundle 介绍了这个概念以及如何在 Symfony2 应用程序中使用它.

关于symfony - “API 优先”安全最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20849217/

相关文章:

找不到 Symfony 警告翻译

php - 向 Symfony 2 表单元素添加错误

javascript - 使用 blueimp jQuery 文件上传进行文件上传,在 IE9 中不起作用

java - Spring MVC中的CSRF(跨站请求伪造)保护

javascript - 在 iOS 和 Node.js 应用程序之间传递登录凭据的最佳方式

Symfony2 + Behat 3 : generate Context file to inside the Bundle and not in the features/bootstrap directory

security - 域与 SameSite 严格的 cookie 之间的安全差异是什么?

javascript - 使用 Express、Node 和 Rest 从 AngularJS 发布数据

security - DDOS 攻击 - Restful Web 服务

c# - 使用 REST 服务的跨平台文件上传/下载指南