【发布时间】:2019-02-05 09:51:00
【问题描述】:
我正在尝试从传入的 href 重定向中隐藏 url 中的敏感数据。当从 angularjs 控制器内部手动更改 url 时会出现问题,这会导致页面重新加载。
Catch:我无法控制将代码添加到具有包含 URL 的 href 的应用程序。
例如:
外部网址重定向“www.sample.com/subpath?sensitiveNumber=123456789”
我希望将网址更改为
“www.sample.com/subpath”
我确实尝试从以下 SO 线程中引用解决方案: Can you change a path without reloading the controller in AngularJS?
使用 reloadOnSearch 的问题是当另一个 url 带有不同的 url 数据作为参数时,它不会重新加载新数据。
我尝试的另一种方法是将传入的数据存储到浏览器的localStorage中,这样当页面在url更改时重新加载时就不需要知道敏感数据;但这会导致调用所有 Async 函数,从而影响性能。
这里是当前代码的路由sn-p
.when('/subpath') {
template: '<templatePath>',
controller: '<controllerName>',
reloadOnSearch: false
}
提前致谢
【问题讨论】:
-
您确实知道,如果您“隐藏”敏感数据,每个用户在浏览器中检查您的站点
network traffic都将能够观察到该数据。您能分享一下您处理的是哪种数据吗? -
是的,您是对的,当您这么说时,如果我们确实检查网络流量,我们将在浏览器中看到所谓的敏感数据。但该问题的实施面向域合规因素,即:由于安全合规原因,数据不可见
-
@ymz - 至于我正在处理的数据,它只是 url 中的一个查询参数。试图阻止从 url 中删除查询参数后重新加载。
-
“Catch:我无法控制将代码添加到具有包含 url 的 href 的应用程序”.. 我真的认为获得访问权限将是最好的解决方案在那种情况下你可以拥有
标签: javascript angularjs routing