如果请求不是来自应用程序,则拒绝访问 rails 路由

Deny access to a rails route if request does not originate from app

我的应用程序中有一条路由 returns 来自 LDAP 查询。我为此使用特权帐户,因为它需要 return 普通帐户无法访问的信息。

如果用户不通过应用程序的一个视图使用它,是否有办法拒绝用户访问它?我要防止的是有人对其进行逆向工程并构建他们自己的应用程序以获取对 PII 的访问权限。

没有可靠的方法来说明此请求源自此视图还是此请求源自(例如)命令行。

HTTP URL 请求没有可验证的来源。有一个 "referrer" HTTP header 旨在说明先前请求的来源,但它不是为了安全并且完全可欺骗,甚至并不总是包含在请求中。

您需要以某种方式对请求进行身份验证。不要发明你自己的方式。使用 devise 或其他一些经过测试的工具来构建身份验证策略,并弄清楚如何修改您的应用程序以使用现有的 HTTP 请求身份验证约定(安全令牌、基于 cookie 的身份验证等)