javascript - 在同一选项卡中打开的其他网站可访问的全局变量
问题描述
今天我发现 Chrome (或者我还没有测试过的其他浏览器)存在安全问题。发生的情况是,一旦您打开一个站点,然后在同一选项卡中打开另一个站点,则该选项卡中的当前站点可以访问前一个站点的全局变量。我已经在这个视频中展示了它:https ://www.youtube.com/watch?v=oDFKsLaecOs
浏览器应该解决这个问题,但是还有其他方法可以保护我们的全局变量吗?
这是您可以重现它的方式:
我登录到 exotel.com 网站,他们正在使用一个name
变量来存储当前登录的用户名。您可以在控制台中使用它并检查其值。
现在转到同一选项卡中的任何其他站点并尝试从 exotel 访问该变量。您的姓名将被显示,或者只是在检查器中添加一个来自 HTML 的按钮,然后单击该显示名称变量。
解决方案
您正在重命名窗口,而不是创建新的全局变量。
还有其他方法可以保护我们的全局变量吗?
不要为预定义的属性赋值,除非你是认真的。
还要避免首先使用全局变量。
什么时候需要使用全局变量,不要让它们成为隐式全局变量。let
使用or声明它们const
。
推荐阅读
- python - 为什么pymysql(0.9.2)调用存储过程,有时获取输出参数无?
- java - 无法将 shell 脚本输出到 java 代码
- symfony - Symfony 学说为 where 子句提供一个数组
- php - 为什么需要将创建的 PDO 对象保存到下一个变量?
- python - 绘制字符串数组 numpy 和 matplotlib
- highcharts - Highcharts Flags 省略/裁剪最后一点
- android - 更改包名称后 FCM 无法正常工作
- linux - 如何更改公共 IPv4 以使其唯一
- cakephp - CakePHP 3:手动更新“创建”时间戳字段
- angular - Angular 6 在单个函数中管理多个请求