javascript - JS:保护数据不被控制台访问
问题描述
在一个简单的 HTML 页面中,我有一些如下所示的 JS
<script>
let users;
axios.get(url)
.then((resp) => {
users = resp.users;
})
// other stuff
</script>
users
现在可以在控制台中访问,因为它位于窗口对象上。将所有这些逻辑包装在 IFFE 中会保护它不被访问吗?
<script>
(function() {
let users;
axios.get(url)
.then((resp) => {
users = resp.users;
})
// other stuff
})();
</script>
解决方案
将所有这些逻辑包装在 IFFE 中会保护它不被访问吗?
只有非常少。或者在现代环境中,您可以添加type="module"
到,script
以便代码作为模块执行(模块的顶级范围不是全局范围)。
但是,这并不能真正保护数据。使用您网站的任何人都可以检查“网络”选项卡,或在 Axios 回调中设置断点,或使用网络嗅探器,或者...
您发送给客户端的任何数据都会与最终用户共享,如果他们想查看的话。如果您不希望他们看到它,请不要将其发送给他们。
推荐阅读
- javascript - 使用 React-Bootstrap 的网格布局在 Columns 中重新定位 div
- scrapy - 我升级了 pyOpenSSL 但它仍然是 0.13.1 版本。无法升级到 18.0.0
- javascript - Webpack 4 - 动态导入无法设置正确的位置
- python - 在 Python 中查找变量的总和
- r - 移动到 RStudio 中的匹配大括号
- python - 自定义插件上的默认子插件
- java - SpringBoot UnfinishedStubingException 与 RestTemplate 模拟
- google-app-engine - 如何从 App Engine 快速入门中取消部署“helloworld.go”,而是指向存储桶中的 html?
- git - 如何在合并提交中显示功能分支的所有单独提交?
- java - 在tomcat服务器中运行时如何在eclipse中提供相对路径