仅通过随机URL来保护订单状态页面是否足够?


11

(公司)客户在我们的网上商店购买了一些商品后,我们会向您发送一封电子邮件,其中概述了他所购买的商品。

我们想通知我们的客户有关已收到的付款,数据包跟踪等信息。我可以通过为每个订单分配一个随机ID并为每个邮件添加一个链接来解决此问题。链接可能是这样的: http://shop.foo.bar/order/rwklvc46g9wt7kvy09f1

您是否将采取其他措施来保护数据?还是选择完全不同的解决方案?

优点:

  • 每个邮件都没有任何状态更新(尤其是如果频繁更新的话)
  • 单一信息源(从未过时)
  • 可共享的(例如与他的老板或同事共享)

缺点:

  • 可公开访问的网站上公开的私人数据(例如电话号码,付款明细)

4
您好Dan,欢迎来到网站站长。您似乎已经创建了两个相同的用户(?),并用另一个 “丹” 编辑了您的问题-因此,它在等待批准的队列中。提出问题的用户始终可以自由地编辑自己的问题,并对答案进行评论等。另一个“单人”没有足够的声誉来做到这两个问题-因为他们没有提出问题。
MrWhite

Answers:


8

没有额外的安全性,没有。随机URL始终会被爬网。但是,在完成登录页面以验证用户身份时,这样做很好。

一种中间解决方案是确保状态页不包含个人数据,而仅包含常规信息。例如,使用“ PAID BY CC”而不是“通过VISA的PAID 1234567891”和“已发货”,而不是“已发货到Blue Street 123的John Doe”,等等。


0

我认为您应该更多地保护这些数据。至于系统的简单性,我非常同意带有随机和唯一字符串的公共URL足够方便。

但是,如果要显示付款方式(包括信用卡信息),电子邮件或电话,那么您就需要保护该数据。这也取决于您是世界的哪一部分,但是在大多数情况下,这种需要扩展到法律事务和用户数据保护上。

大多数购物网站在这种情况下的作用是要求提供凭据(登录名/密码)或带有跟踪代码的跟踪号,或者仅是用户或用户的受信方可能拥有的东西。


-1

是的,只要满足以下条件即可:

  1. 您只是通过电子邮件发送链接,而不将其提交给Google。但是根据您的问题,这就是您的工作,因此Google无法了解其链接永远不会被索引/抓取的链接。

  2. 您可以使链接中使用的ID随机且足够长。如果不是随机的,但是您使用一个简单的增量整数作为ID,您的客户之一就可以很容易地发现,通过在链接中输入递增的简单数字,他可以读取所有其他订单。如果是随机的,但时间不够长(例如,它仅由4位数字/字母组成),即使使用家用PC蛮力攻击您的订单也很容易,我只需要尝试(26 + 10)^ 4 = 1,679,616种可能的组合。假设我运行了一个脚本,该脚本每秒尝试一个链接,那么用不到不到20天的时间就可以暴力破解所有可能的链接并读取您的所有订单。

  3. 重要说明:为了提高安全性,您应该在一定天数后(即1个月后)删除链接。这是使其安全的窍门。这样,即使有人试图强行使用您的链接,他也将需要巨大的计算能力,否则他的攻击将永远不会足够快,无法在删除所有可能的组合之前对其进行尝试。即使他具有强大的计算能力,他每秒也几乎无法测试一个以上的链接,因为如果他尝试每秒重复连接一次,则处理您的订单的服务器可能会开始拒绝其连接。仅供参考:删除链接,并不意味着您必须删除数据库中的所有订单。您可以对订单表使用另一个主键(一个简单的autoincrement int),并且可以使用一个称为link_id的UNIQUE字段(允许NULL),它是您在链接中输入的键。一个月后,您只需要删除link_id的值并将其设置为NULL。这样,订单仍将保留在表格中,并且可以在管理面板中查看,但是直接链接对于直接查看订单页面不再有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.