Php 是否存在将db表字段作为url参数传递的安全问题?

Php 是否存在将db表字段作为url参数传递的安全问题?,php,database,Php,Database,因此,用户收到一封电子邮件,其中包含某人刚刚下的订单,他会收到一个带有2个参数的链接,以确认订单,而无需登录应用程序。 url将包含订单ID和确认密钥,该密钥是在下订单时创建的,随机且唯一。e、 g 通过传递订单id和确认密钥,考虑到用户将不会登录,因此无法检查权限,是否存在任何安全问题 我主要担心的是,如果攻击者开始随机重新创建参数,他可能会猜测尚未确认的订单并错误地确认,或者这些参数会帮助他入侵数据库吗 谢谢威胁不是因为您通过电子邮件泄露订单ID和随机生成的字符串。但问题是当有人单击或更好地

因此,用户收到一封电子邮件,其中包含某人刚刚下的订单,他会收到一个带有2个参数的链接,以确认订单,而无需登录应用程序。 url将包含订单ID和确认密钥,该密钥是在下订单时创建的,随机且唯一。e、 g

通过传递订单id和确认密钥,考虑到用户将不会登录,因此无法检查权限,是否存在任何安全问题

我主要担心的是,如果攻击者开始随机重新创建参数,他可能会猜测尚未确认的订单并错误地确认,或者这些参数会帮助他入侵数据库吗


谢谢

威胁不是因为您通过电子邮件泄露订单ID和随机生成的字符串。但问题是当有人单击或更好地使用该URL返回到您的服务器时,您如何处理该作业

因此,您的代码如何处理随机产品ID和随机字符串(可能存在或不存在)是一个问题。从你提供的信息来看,似乎没有被黑客攻击的真正机会。由于您没有给出任何表名或数据库值,因此您将URL作为输入并在内部进行处理

你应该检查的是- 确保黑客通过电子邮件点击或其他方式进入服务器的ID和随机字符串是真正的ID和随机字符串,而不是一些PHP或SQL代码。所以还是用吧

但它仍然不能解决其他人确认订单的问题。通过随机猜测,人们可以猜测ID和随机字符串的组合,这可能会意外地确认订单。 因此,为了解决这个问题,我向您推荐以下解决方案-

请用户登录。一个简单的登录不会真的让买家恼火,如果你使用facebook或google登录,或者如果没有,使用keep me登录功能。 如果您仍然希望跳过任何登录,请生成1个以上的随机字符串,这将以指数方式减少有人猜测的机会。喜欢
为什么不简单地检查订单id是否与登录用户的id匹配,如果不匹配,就退出。如果有人猜到你的散列,那么你的散列显然太弱/简单了。如果传递了一个唯一且足够长的字符串,并且做得很好,那么黑客或任何其他人都无法猜到,除非此人的计算机被按键跟踪器/特洛伊木马跟踪,和/或此人的电子邮件已被泄露。可能的情况太多了,谢谢你们。我将使用登录路径,我只是想缩短我的用户的一些时间,这样即使他们中的一些人没有登录,他们也可以更轻松地确认订单……您可以对URL进行加密和解密。