Javascript 如何保护从站点窃取的经度/纬度值
我有一个混合了ASP MVC Razor的javascript函数,它可以从数据库中获取数据,并根据这些数据在google地图上绘制标记Javascript 如何保护从站点窃取的经度/纬度值,javascript,asp.net-mvc,asp.net-mvc-3,razor,google-maps-api-3,Javascript,Asp.net Mvc,Asp.net Mvc 3,Razor,Google Maps Api 3,我有一个混合了ASP MVC Razor的javascript函数,它可以从数据库中获取数据,并根据这些数据在google地图上绘制标记 @foreach (var item in Model.Locations) { @:addMarker(@item.Latitude, @item.Longitude, map); } 在我将此标记加载到地图上后,问题开始出现。 如果在浏览器
@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);
...
是否有可能以某种方式隐藏此坐标值?我的应用程序业务基于这些坐标,我不希望有人编写脚本并从我的站点获取所有坐标。不幸的是,我认为没有,因为第三方(谷歌或其他人)需要在页面请求之外访问这些坐标来创建地图,因此,如果您找到了隐藏这些细节的方法,那么Google maps将无法提供带有标记的地图(因为它在页面请求之外请求这些细节)。这里有一个想法: 您可以通过AJAX从HTTPS安全地址下载坐标。 这样,人们就无法嗅到车辆的气味 然后,您可以将参数从AJAX调用传递到maps控件,而不是使用硬编码的值运行addMarker 为了保护AJAX服务不被外部抓取,您在服务器端生成一个临时令牌。您将该令牌嵌入ASP.NET MVC页面(嵌入AJAX调用)。 AJAX服务检查令牌的值 它不是100%安全的,但在我看来,它降低了窃取你坐标的风险
如果需要100%安全,您需要在自己的服务器上渲染最终图像,包括感兴趣的点。即使您以安全的方式获取数据,一旦数据进入浏览器,任何人都可以轻松获取。在您的服务器上更改谷歌地图图像违反服务条款(尽管您可能会找到一家允许这样做的地图供应商)。