隐藏/保护URL - 获取字符串/数据

时间:2014-03-17 12:34:47

标签: php url

如何防止数据字符串显示在URL中?因为任何人都可以很容易地覆盖已经写好的内容而且看起来并不整洁。

我没有尝试任何重写规则,我认为有一种更简单的方法。

我的印象是rawurlenocde和urlencode会这样做,但我认为我错了。

<td align="left"><a href="review.php?id='. $row['review'] . '&title=' . $row['movie_title']  .'"> Read Review </a>

这就是它在另一页上显示的方式。

    <div id="sub_review_container"> <? echo ($_GET['title'])?> </div>

    <div id="Review_container"> <? echo ($_GET['id'])?> </div>

1 个答案:

答案 0 :(得分:2)

POST的预期用途是用于改变服务器状态的东西:更改文件,向数据库添加内容等。此外,没有简单的方法(我知道)让浏览器提交来自链接的POST请求(您需要在页面上有一个隐藏的表单,并让链接触发要提​​交的表单)。 POST也不总是用户友好,因为如果他们尝试刷新页面,浏览器会告诉他们是否要重新提交数据。

听起来你担心有两个潜在的问题:

  1. 有人提交了不好的价值。
  2. 网址看起来并不整洁。
  3. 对于第一部分,答案是在对它们采取行动之前验证提交的值。无论如何,你总是这样做。即使使用POST,任何拥有一点技术诀窍的人都可以提交任何价值。不应信任来自Web客户端的任何数据。

    对于第二部分,PHP无法解决您的问题,您需要依靠Web服务器本身来完成它。 PHP只获取服务器发送给它的数据,服务器是根据URL确定在哪里路由请求的服务器。听起来你正在使用Apache httpd,所以最好的办法是使用URL重写。这并不难,只需要一个小时或更短的时间来阅读文档,您就可以快速启动并运行。还有其他方法可以做到这一点:说服Apache将特定前缀URL下的所有请求发送到您的PHP脚本,并且您可以从PHP中检查请求URL,但这比使用apache的重写引擎要多得多。 / p>