避免或替代使用$ _GET

时间:2013-11-23 14:32:11

标签: php

我目前正在使用来自查询字符串(网址)http://example.com?id=c02df的$ _GET变量来处理结果并更新等,因为您知道用户可以通过网址(from above example id is c02df)查看发送到下一页的ID并且可以自己更改URL中的id。请告诉我是否有任何替代方法可以在页面之间交换ID以相应地处理用户无法看到或弄乱的功能?

2 个答案:

答案 0 :(得分:2)

如果您不想允许用户篡改请求,最好的解决方案是使用$_SESSION

如果您提供有关代码的更多信息,我可以提供有关解决方案的更多信息。

编辑:这是使用$ _SESSION和$ _GET的“解决方法”(仍然没有看到你的代码):

您设置了$_SESSION['allowed_gets'][] = 'c02df';

然后,当用户发出请求时,您检查是否允许他们执行该请求:

if (!in_array($_GET['id'], $_SESSION['allowed_gets'])){ die(); }

答案 1 :(得分:1)

如果您有内容用户无法看到,您应该有一个登录系统。

如果您只想要无法使用的网址,请避免使用$_GET参数的顺序ID。例如,您可以生成ID的盐渍MD5 / SHA1哈希值,将其与ID一起存储在数据库中,并在URL中使用它。