在Rails中,是否可以阻止来自浏览器地址栏的HTTP请求?并且只允许通过应用内的链接进行导航?
我真的希望阻止用户在浏览器中输入目的地,只使用提供的链接。
我知道这可能听起来很傻。但是,我试图提供与任何常规网站不同的用户体验。
答案 0 :(得分:1)
通过使用模糊处理或使用会话使应用程序具有状态,您可以使用户更难以猜测正确的URL。但从技术上讲,通过单击链接或在浏览器中键入URL发送的GET请求与服务器相同。前者是security by obscurity的一种形式。
整体基本上违反了RESTful应用程序所做的核心租户。在REST中,资源应该是无所不能的 - 无论用户如何到达,请求相同的资源都应该提供相同的响应。
如果您发现无法通过在浏览器中键入地址来执行操作,则很可能使用HTTP谓词错误(使用GET,您应该使用POST,PUT或DELETE)或者授权系统。
答案 1 :(得分:1)
为了完整性,是。
之前的响应者是对的,这听起来不错,但有可能。我想它与认证工作方式类似。在第一页的会话中设置一个秘密值,在用户到达的第二页上请求它,如果他们不匹配用户没有使用您的导航。根据需要快速刷新(例如,每个页面)。
缺点?这很奇怪,这不是网页的工作方式。单击的链接(或GET请求)与浏览器中键入的URL没有什么不同。你和其他常规网站不同的用户体验是什么意思?我们越容易得到更多细节。