我正在为我参与的一个项目开发一个 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/