我想隐藏特定页面的网址,以防止用户直接访问它。我可以隐藏特定页面的实际URL吗?
我有一个表格,用户必须在重定向到www。******。com/xyz.php之前完成。
当他们完成表单并被重定向后,是否有可能将网址显示为www。******.com?
期待任何意见!
我想隐藏特定页面的网址,以防止用户直接访问它。我可以隐藏特定页面的实际URL吗?
我有一个表格,用户必须在重定向到www。******。com/xyz.php之前完成。
当他们完成表单并被重定向后,是否有可能将网址显示为www。******.com?
期待任何意见!
虽然它可能不是最佳实践,但您可以为Http Get操作提供一组html,并为Http Post操作提供另一组html。您的动作可以返回表单,对帖子动作的回复可能会返回您的第二页。
有许多的原因,这是一个坏主意,这其中就包括
想出一个替代的解决方案,比如生成一个临时访问令牌或设置一个cookie来表示他们已经完成了表单,这样做会好得多。
的最好的解决方案可能是待讨论,但一个简单的解决方案是有两个.PHP页面让我们称他们index.php
和form.php
。当GET
请求www.example.com
时,您的Web服务器配置为提供index.php
。 (确切的做法取决于您的服务器软件)。
index.php
检查cookie并重定向到form.php
如果cookie未设置。 See this question/answer for more details
form.php
响应由服务于HTML的形式,并通过设置cookie并且重新回到index.php
一个POST
请求GET
请求。
“轻松击败”...?它不完全应该是防御任何事情开始... – deceze
@deceze“,以防止用户直接访问它” - 但也许防御还是有点过于强大 –
在WWW的根目录**** COM创建一个名为.htaccess
文件(如果它不存在),并添加以下行吧:。
DirectoryIndex xyz.php
这将所有重定向请求www。****。com到www。***。com/xyz.php
因此,如果用户访问www。****。com,url(显示在浏览器中)会是一样的,但页面加载将是xyz.php
:)
你为什么重定向他们?为什么不直接提供内容来响应表单中的POST请求? – Quentin
永远不要考虑“隐藏URL”。用户看到的页面由URL确定。浏览器中显示的URL是用户看到的页面。您不能让用户访问页面A,但在地址栏中显示页面B.如果他们正在访问页面B,那么页面B将显示在他们的地址栏中,否则他们将不会访问页面B.您需要考虑的是HTTP的请求 - 响应思想,并且您的服务器始终处于完全控制它发送给什么*请求*的*响应*。网址只是其中的一小部分。 – deceze