让我们说我的主页上有一个链接到各种书籍的网站。
<a href='books.php?id=1'>Book 1</a>
<a href='books.php?id=2'>Book 2</a>
<a href='books.php?id=4'>Book 3</a>
图书1-3在我的系统中,但是id = 3是另一个我没有通过网站的这一部分展示或授权的catelog。因此,如果用户点击了Book 3,然后将id = 4更改为id = 3,他们可以简单地拉出记录(假设我没有正确的会话检查)。
在尝试提取特定记录时,是否有一种方法可以模糊您传递的获取ID?它似乎通过传递只是id将很容易请求页面,没有适当的查询和会话检查,你将能够得到另一个结果。
有更好的方法吗?
干杯
答案 0 :(得分:1)
您需要始终始终检查用户是否能够访问该页面。这是验证您没有显示错误数据的唯一方法,因为有人可以随时修改他们要访问的链接,即使您以某种方式隐藏它。
没有逃脱它。您始终需要验证是否可以访问该记录。
答案 1 :(得分:1)
您可能可以使用md5
或其他任何内容来对您的ID或其他内容进行哈希处理以使其更难手动输入,但这确实不是一个好主意。
您应该在books.php
脚本中实施服务器端安全性,以防止用户进行未经授权的访问。这是保证您的网站安全的唯一因素。
答案 2 :(得分:0)
如果允许显示或不显示,请检查ID 使用get是一个很好的做法,当你检查你可能有的任何参数时。
答案 3 :(得分:0)
大声思考:
执行php函数或if语句:
if (user is not in user_level) // user is not allowed to see everything
{
redirect to previous page;
}
else if (user is in user_level) // user is allowed to see everything
{
display all items;
}
答案 4 :(得分:0)
您肯定需要检查是否允许用户查看该页面 但是,如果您将不同目录的ID分开怎么办? URL可能看起来像books.php?cat = foo&amp; id = 1。这不一定会使事情变得更加安全,但它会阻止人们意外地找到错误的页面并将事情组织得更好。