我有与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);
...
有可能以某种方式隐藏这个坐标值吗?我的应用程序业务基于这些坐标,我不是有人制作脚本并从我的网站获取所有坐标。
答案 0 :(得分:2)
不幸的是我认为没有,因为第三方(谷歌或其他人)需要访问页面请求以外的这些坐标来创建地图,所以如果你找到某种方法来隐藏这些细节,那么谷歌地图将无法提供带有标记的地图(因为它在页面请求之外请求这些详细信息。
答案 1 :(得分:1)
这是一个想法: 您可以从HTTPS安全地址通过AJAX下载坐标。 这样,人们就无法嗅到流量。
您可以将AJAX调用中的参数传递给地图控件,而不是使用硬编码值运行addMarker。
要保护AJAX服务免受外部抓取,您需要在服务器端生成临时令牌。您将令牌嵌入到ASP.NET MVC页面中(进入ajax调用)。 AJAX服务检查令牌的值..
这不是100%安全,但它减少了我认为窃取坐标的风险。
如果需要100%安全,您需要在自己的服务器上渲染最终图像,包括感兴趣的点。