如何保护从站点窃取的经度/纬度值

时间:2012-03-20 21:51:30

标签: javascript asp.net-mvc asp.net-mvc-3 razor google-maps-api-3

我有与ASP MVC Razor混合的javascript函数,它从数据库中获取数据并基于谷歌地图上的数据绘制标记。

@foreach (var item in Model.Locations)
            {                
                 @:addMarker(@item.Latitude, @item.Longitude, map);
             }

我在地图上加载此标记后问题就开始了。 如果我在浏览器中打开页面源,这个foreach循环看起来像这样:

addMarker(20.917701, 44.022, map);
addMarker(20.927701, 44.052, map);
addMarker(20.937701, 44.062, map);
addMarker(20.947701, 44.072, map);
...

有可能以某种方式隐藏这个坐标值吗?我的应用程序业务基于这些坐标,我不是有人制作脚本并从我的网站获取所有坐标。

2 个答案:

答案 0 :(得分:2)

不幸的是我认为没有,因为第三方(谷歌或其他人)需要访问页面请求以外的这些坐标来创建地图,所以如果你找到某种方法来隐藏这些细节,那么谷歌地图将无法提供带有标记的地图(因为它在页面请求之外请求这些详细信息。

答案 1 :(得分:1)

这是一个想法: 您可以从HTTPS安全地址通过AJAX下载坐标。 这样,人们就无法嗅到流量。

您可以将AJAX调用中的参数传递给地图控件,而不是使用硬编码值运行addMarker。

要保护AJAX服务免受外部抓取,您需要在服务器端生成临时令牌。您将令牌嵌入到ASP.NET MVC页面中(进入ajax调用)。 AJAX服务检查令牌的值..

这不是100%安全,但它减少了我认为窃取坐标的风险。

如果需要100%安全,您需要在自己的服务器上渲染最终图像,包括感兴趣的点。