【发布时间】:2013-09-15 03:17:15
【问题描述】:
我只是想知道是否可以将随机字符添加到我传递到第二页的变量中。我想要这个,因为如果用户更改了 url 中的值,那么系统就会搞砸,因为我根据消息 ID 将数据插入数据库。我无法使用会话,因为第一个会话覆盖了其他会话。
如果我有类似 view_inbox.php?messageid=2 的内容,那么用户可以将其更改为 view_inbox.php?message=4。
那么是否有可能有一些随机字符,比如
view_inbox.php?messageid=GXLSsd2sdcds? id 来自数据库。
echo"<a href='view_inbox.php?messageid=".$row['id']."'>".$row['from_user']."</a>";
view_inbox.php
$id = $_GET['messageid'];
【问题讨论】:
-
"我无法使用会话,因为第一个会话覆盖了其他会话。"这没有任何意义,而且会话听起来是一种更好的方法。 ...
$_SESSION['messageid']=2;... -
随机字符将如何 a) 帮助您和 b) 阻止某人摆弄它?我认为你需要重新考虑你真正的问题。
-
通常,在向用户显示数据之前,通过完整性检查输入变量来避免 URL 操作,即检查 url 中的 ID 是否是允许用户查看的消息,如果不是则显示错误消息。
-
@Dagon 就像在第一页
inbox.php将列出所有消息,当用户选择消息查看详细信息时,它将显示第一个。但是在第一个消息之后,如果用户选择了另一条消息,那么消息详细信息是相同的。 -
那么您在选择消息时没有正确更改会话变量。为什么不解决这个问题,而不是尝试更糟糕的方法