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