【发布时间】:2013-07-06 10:54:40
【问题描述】:
我正在寻找解决我遇到的这个问题的最佳方法,并且我一直在寻找一种方法来尝试解决它。
我有一个名为 products 的数据库表,在这个表中我有我所有的产品,比如鞋子、衣服、帽子等
我有一个页面,我曾经根据产品ID 将所有内容回显到其中,我使用的代码如下所示
<a href="product.php?ID=<?php echo $row['ID']; ?>">View</a>
网址是这样的
http://www.example.x10.mx/product.php?ID=1
问题是有人可以将 ID 更改为 2 或 3 或 4.... 这不应该发生。我不知道问题是它没有使用付费域还是仅在 x10hosting 上。
问题
我想提供将 url 中的 ID 更改为他们想要的任何随机数的用途,有人可以告诉我如何做到这一点。
另一个问题 它们是 phpMyadmin 可以生成随机字母和数字混合的一种方式吗,因为这是我想到的解决问题的唯一方法
谢谢
【问题讨论】:
-
为什么他们不能自己编辑 ID?您将如何确保“代码”始终相同以保留书签,什么不是,或者根本不应该引用?
-
@prodigitalson 事情是我设计 product.php 和 itemview.php 页面的方式是两者都回显 ID 所以如果我在 itemview.php 页面上将 ID 更改为 2将显示与该 ID 相关的内容,这些内容不应显示在 itemview.php 上,并且与许多其他产品相关
-
只要您不依赖它们具有相同的 ID 来进行安全或验证,这应该不是问题。他们会混淆显示,但这是他们自己的错。他们不应该这样做并期望得到合理的输出,你也不应该担心。
-
为了安全起见,您不应在 URL 中使用任何内容。您的数据库应说明哪些用户有权访问哪些产品 ID,并且服务器脚本应在收到请求时检查该 ID。
-
@Luffy:我同意 Bumar 的观点,我认为你对自己施加了不必要的要求。另外,您从我能从您的命名中辨别出的内容中所描述的内容也没有多大意义。它们是两种不同的视图,因此它们要么是独立的,因此会使这种情况变得毫无意义,要么它们都基于实体和 id(产品/项目)。
标签: php mysql security phpmyadmin