防止篡改客户端地理编码结果

时间:2010-09-16 13:51:44

标签: javascript security google-maps google-maps-api-3 geocoding

我们正在构建一项使用基于位置的定价的服务。用户可以输入地址并查看由各种服务器端算法确定的他所在区域的价格。然后可以根据这些价格订购商品。

我正在尝试弄清楚在这种情况下我们是否可以使用客户端地理编码(以避免达到Google Maps API使用限制),例如用户输入他的地址,浏览器使用JS库获取地理编码结果,并将其包含在表单提交中。问题是用户可以篡改表单提交,并可能将订单下达到他的地址,以适用于适用于不同坐标集的价格。

我想听听你对如何确保这一点的建议。例如,如果地理编码结果可以某种方式签名以验证它没有被篡改,那将是惊人的吗?

3 个答案:

答案 0 :(得分:5)

Never trust data created clientside。任何你可以做客户端的事情,他们都可以。

答案 1 :(得分:2)

如果您希望客户端计算机执行请求,您将在此安全方面受到限制,因为它将全部是javascript,并且恶意用户可以检查脚本并查看您正在执行的操作。因此,即使尝试“保护”它也会受到限制。

我唯一的建议就是在用户提交结果时进行“最终验证”服务器端。这应该会降低服务器端的API命中率,但会使安全性保持100%有效。

答案 2 :(得分:1)

如果数据存储在用户的机器上,他们可以用它做他们想做的事情。您可以加密它或者其他东西,或者可以将ID存储到地理数据表(如邮政编码,但组成您自己的类似系统)或地理数据的哈希值或其他内容,但是存储在其计算机上的任何内容都是他们的。