2

我有一个在线表格,由我们的合同部门发送给我们的供应商。此表格允许我们的供应商更新其公司信息和产品价格。

我们不想强迫他们使用登录名,因为我们不想为我们所有的供应商创建一个帐户,这是他们每年都会做一次的事情,所以他们很可能会忘记他们的凭据。

这个在线表格会显示一些敏感信息,因为它会显示当前的“经纪人”价格。

我正在考虑创建一个唯一的 URL,该 URL 将通过电子邮件发送给他们。但我必须确保

  • 只有预期的收件人才能阅读和更新表格

  • 降低 URL 伪造的风险,这将允许某人通过猜测其他唯一 URL 来打开一堆表单。

此 URL 将通过电子邮件发送,我们希望供应商单击并编辑表格。在电子邮件中,我将包含一个数字密码,在发布更新信息时必须使用该密码,并且每个 URL 都会有一个过期时间。

生成此类唯一 URL 的最佳实践是什么?可以使用哪些步骤来提高安全性以防止上述风险?

4

2 回答 2

2

为每个喜欢的客户生成一个随机字符串,GJAOEJGOMASDIG2351DSFGSD并将其放在 URL 中的某个位置。当他们访问 URL 时 - 确保随机字符串与公司的随机字符串匹配......?

http://www.domain.com/form.php?customerId=255&rand=GJAOEJGOMASDIG2351DSFGSD

$sql = "Select * from customers where id=".$custId." and randomHash='".$randString."'";

这样,查看者需要知道客户的 ID 及其匹配的随机字符串。如果其中一个不匹配,则拒绝访问。

确保对 SQL 注入采取预防措施。

于 2012-04-12T21:00:28.960 回答
1

最明显的答案是:

向 URL 添加一个带有随机数、大数的参数(在数据库中存储已分配的编号以及分配给哪个电子邮件)

当用户单击 URL 时,他必须在表单中输入正确的电子邮件。

于 2012-04-12T21:01:25.603 回答