我写了一个使用AngularJS v1.6.4
和angular-google-maps 2.4.1 2017-01-05
的Web应用程序。
我已经使用Microsoft Edge,谷歌浏览器,Mozilla Firefox进行了测试,一切都很好。
但是,当尝试在Tor浏览器中查看我的应用程序时,即使开发人员控制台(F12)没有显示任何错误,它也无法正确加载。
是不是因为以下代码(通过GeoIP获取用户位置)与Tor策略不匹配?
XmlDocument doc = new XmlDocument();
doc.Load("http://www.freegeoip.net/xml");
XmlNodeList nodeLstLatitude = doc.GetElementsByTagName("Latitude");
visitor.ipLatitude = nodeLstLatitude[0].InnerText;
XmlNodeList nodeLstLongitude = doc.GetElementsByTagName("Longitude");
visitor.ipLongitude = nodeLstLongitude[0].InnerText;
默认情况下,Javascript被禁用(或至少未完全启用),以防止浏览器指纹识别。
它确实允许一些javascript,因为大多数网站需要它来运行。
您可以通过在Tor的设置面板中启用所有类型的javascript内容来运行Angular应用程序,但是没有人会这样做。
由于Angular的核心包装器如$document
和$window
,以及通过$templateCache
和$localStorage
(安装时)使用本地存储,它可能永远不会在Tor的默认设置上运行。
浏览器或设备指纹识别用于通过收集设备分辨率,浏览器版本等特定信息来创建访问者的配置文件。
如果您在Chrome控制台中键入navigator
或window
,您可以自己查看,这只是Javascript可以跟踪的一小部分内容。
这意味着,您可以识别用户的返回访问,即使您已注销,清除缓存和Cookie,每次访问时切换IP(Tor)等。这不是您在使用Tor时所需的。
有关更多信息,请参阅Device Finterprinting的wiki条目,或关于此主题的in-depth paper。
Tor浏览器不是为开发复杂的角度应用而设计的。但是如果您的目标是tor浏览器,那么默认情况下会禁用javascript,如果您熟悉firefox,启用/禁用JS与firefox相同,因为Tor浏览器是基于FF构建的。如果您只是查看设置,启用它是微不足道的。