你能隐藏$ _GET值吗?来自用户的网址?

时间:2015-02-01 17:21:46

标签: php mysql apache

我开发了一个无法访问互联网的内部应用程序。

我希望能够让用户登录,只看到sitesname.net,并且没有过去的URL。

目前,他们会看到一个包含目录,网页和广告的长网址。基于会话及其正在执行的功能的$_GET值。我注意到他们中的一些人已经完成了$_GET值完整的书签,所以他们正在做一些不应该做的事情。

我希望能够隐藏目录,页面和页面。来自他们的$_GET值。

有可接受的方法吗?

php服务器上使用mysqlapache构建的应用。

2 个答案:

答案 0 :(得分:1)

对此没有一个答案,因为这些参数中可能存在不同类型的信息:

  • 导致操作的表单数据,例如更新用户的首选项。确保此类表单使用method="post"编写,这将把数据放入HTTP正文(可通过$_POST访问),而不是URL(可通过$_GET访问)。请注意,这确实为您提供任何安全性,因为精明的用户仍然可以读取和操作正在发送的数据,但它确实保持URL整洁,并防止用户为页面添加书签对它采取行动。一旦处理完数据,将用户重定向到成功页面(没有POST参数)通常也很有用,这样点击"刷新"不会尝试重新发送数据。
  • 需要在整个访问过程中坚持用户的数据,但下次要清除。使用cookie(setcookie()编写,$_COOKIE阅读下一页。同样,用户可以查看和操作这些内容,但他们可以更轻松地管理需要过期的数据。
  • 需要保密或安全的数据,例如用户的经过验证的身份。使用PHP session;会话ID是一个随机字符串,应该配置为使用cookie,实际数据永远不会发送给用户,只是存储在服务器上以该随机ID命名的文件中。
  • 告诉服务器向用户提供哪个页面的数据。这几乎必须在URL中,因为这是从用户的浏览器发送到服务器的内容; mod_rewrite可以神奇地使它不可见,但它可以使它看起来更好。例如,您可以说,只要用户请求页面http://example.com/users/IMSoP,服务器就会看到请求,就好像http://example.com/user_page.php?username=IMSoP;但是,您无法说明该网址IMSoP,否则您的代码无法知道要显示的用户页面。
  • 页面上的瞬态消息和面板的数据。如果您希望了解UI,可以大量使用AJAX在单独的请求中加载页面的部分内容,并使用JavaScript将它们拼接在一起。每个部分的URL都像普通的URL一样,但除非他们深入浏览他们的浏览器调试工具,否则用户不会看到这些URL,只看到他们加载的主页面。在最极端的情况下,这会产生一个单页界面",您可以在其中加载主页,而网站的每个其他部分都只是动态拉入的面板;这在技术上非常简单,但是为了获得一个易于用户使用的网站而且不仅仅是因为意外行为而使他们感到沮丧而且无法做到这一点非常棘手。#34; normal"书签部分之类的东西。

答案 1 :(得分:0)

我不是mod_rewrite的专家,但我认为你可以通过使用mod_rewrite隐藏get params。您可以使用" post"作为Http方法和那种方式,你将有一个干净的网址(即你的网址中没有参数),如果你是安全的想法,帖子也是安全的。

  • GET - 从指定资源请求数据
  • POST - 将要处理的数据提交到指定资源

有关GET&amp ;;的更多信息POST你可以访问这些链接,他们将帮助你决定你必须使用哪种方法的http方法。这里:

GET vs POST (Yay! In Tabluar form)
HTTP Methods
PHP Form Handling