我在Rails 3应用程序中有一个API控制器,用于与同一台机器和远程服务器上的其他应用程序通信。
远程服务器使用HTTP基本身份验证来访问API。默认情况下,应允许来自同一服务器的请求。
信任request.local是否安全?请求真的来自同一台机器?我在考虑IP欺骗等。
Btw“protect_from_forgery”在API控制器中被停用。
答案 0 :(得分:0)
对于中等程度的安全性,是的。这要求您信任任何用户可能在同一系统上运行的所有进程。它还要求服务器TCP / IP堆栈,路由和网络过滤器/内部防火墙以合理的方式配置,不允许将来自服务器外部的数据包伪装成本地IP地址(特别是127.0.0.1)。并假设Rails中的LOCALHOST
常量设置为127.0.0.1
。
顺便说一下,protect_from_forgery
可以保护cross-site request forgery(CSRF),但不能防止IP地址欺骗。并确保请求来自授权的IP和用户不能防止CSRF。