在一个简单的HTML页面中,我有一些JS,如下所示
<script>
let users;
axios.get(url)
.then((resp) => {
users = resp.users;
})
// other stuff
</script>users现在可以在控制台中访问,因为它位于window对象上。在IFFE中封装所有这些逻辑会保护它不被访问吗?
<script>
(function() {
let users;
axios.get(url)
.then((resp) => {
users = resp.users;
})
// other stuff
})();
</script>发布于 2021-01-12 19:01:39
会将所有这些逻辑封装在IFFE中,以保护它不被访问?
只是很小的一点。或者在现代环境中,您可以将type="module"添加到script中,这样代码就可以作为模块执行(模块的顶层作用域不是全局范围)。
但是,这并不能真正保护数据。使用您的站点的任何人都可以检查“网络”选项卡,或者在您的“Axios回调”中设置一个断点,或者使用网络嗅探器,或者.
如果客户端希望看到任何数据,则将其与最终用户共享。如果你不想让他们看到,就不要寄给他们。
https://stackoverflow.com/questions/65690283
复制相似问题