Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何保护从站点窃取的经度/纬度值_Javascript_Asp.net Mvc_Asp.net Mvc 3_Razor_Google Maps Api 3 - Fatal编程技术网

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

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); } 在我将此标记加载到地图上后,问题开始出现。 如果在浏览器

我有一个混合了ASP MVC Razor的javascript函数,它可以从数据库中获取数据,并根据这些数据在google地图上绘制标记

@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%安全,您需要在自己的服务器上渲染最终图像,包括感兴趣的点。

即使您以安全的方式获取数据,一旦数据进入浏览器,任何人都可以轻松获取。在您的服务器上更改谷歌地图图像违反服务条款(尽管您可能会找到一家允许这样做的地图供应商)。