Google Chrome 69 地址栏隐藏子域名后暴露的安全问题

自从Chrome 69版本开始,Google Chrome浏览器地址栏默认隐藏了URL中的子域名部分,例如:将"www.example.com"显示为"example.com"。这样做的目的是为了提高用户体验和简化用户界面,但这也引发了一个安全隐患。

安全问题

攻击者可以利用这个缺陷去欺骗用户访问恶意网站。例如,攻击者可以使用类似的恶意URL:http://www.paypal.cоm.evil.com,它看起来像是PayPal网站的URL,但实际上它是指向恶意站点的URL。由于Chrome 69版本地址栏默认隐藏了URL中的子域名部分,所以恶意网站的URL看起来就像是这样:http://paypal.com。

此外,攻击者还可以利用这个Bug来进行水坑攻击(phishing attacks)。攻击者可以将一个合法网站的页面嵌入到他们自己的不良网站中,并使用隐藏的子域名来让用户误认为他们正在浏览合法网站。这使得用户更容易被欺骗,泄露敏感信息或下载恶意软件。

指导意义

为了解决这个问题,我们应该在代码中使用绝对URL而不是相对URL。绝对URL将明确指定主机名和子域名,从而避免了Chrome隐藏子域名的缺陷。例如:

-- ---------------------------------------------------

在这个例子中,我们使用完整的URL(包括"http://")来指定链接的目标,以确保显示了完整的域名。

此外,网站管理员应该提高用户的安全意识,告知他们如何辨别恶意网站和警惕水坑攻击。浏览器厂商也应该考虑对地址栏隐藏子域名功能进行优化和改进,加强用户体验的同时不影响网站的安全性。

结论

Google Chrome 69地址栏隐藏子域名后暴露的安全问题可能会导致用户被欺骗访问恶意网站和泄漏敏感信息的风险。为了避免这种情况,我们应该在代码中使用绝对URL并提高用户的安全意识。浏览器厂商应该考虑改进地址栏隐藏子域名的功能,以保证用户体验的同时增强网站的安全性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/39843


猜你喜欢

  • npm 包 escomplex 使用教程

    什么是npm包escomplex? npm包escomplex是一个用于JavaScript代码复杂度分析的包。它提供了一个简单易用的命令行工具和API接口,可以使用它来分析你的JavaScript代...

    6 年前
  • npm 包 escomplex-traits 使用教程

    escomplex-traits 是一个基于 escomplex 库的 npm 包,它提供了一系列用于 JavaScript 代码复杂度分析的 traits 方法。

    6 年前
  • npm 包 escomplex-ast-moz 使用教程

    简介 escomplex-ast-moz 是一个基于 Mozilla Parser API 的 npm 包,用于计算 JavaScript 代码的复杂度。它通过解析语法树来分析代码并生成相应的统计数据...

    6 年前
  • npm 包 please-release-me 使用教程

    请发布我 (please-release-me) 是一个 Node.js 的命令行工具,它可以帮助你发布 npm 包和 GitHub release。在这篇文章中,我们将会学习如何使用 please-...

    6 年前
  • npm 包 check-types 使用教程

    简介 在前端开发中,我们经常需要对变量类型进行检查、断言等操作。而 npm 上的 check-types 就是一个非常实用的工具库,它提供了一系列方便的方法来判断变量的类型,包括简单类型和复杂类型,如...

    6 年前
  • NPM 包 unix-dgram 使用教程

    介绍 unix-dgram 是一个 Node.js 的第三方模块,用于 Unix 域套接字的通信。它提供了一组基本的函数来创建和操作 Unix 域套接字。 本文将详细介绍如何使用 unix-dgram...

    6 年前
  • npm 包 mockery 使用教程

    在前端开发中,我们常常需要模拟一些外部依赖来进行测试。这时候,mockery 就成为了一个非常方便的工具。它可以帮助我们快速地创建虚拟的模块和依赖。 安装 mockery 你可以通过 npm 来安装 ...

    6 年前
  • npm 包 escomplex-js 使用教程

    escomplex-js 是一款基于 JavaScript 的 npm 包,它能够计算 JavaScript 代码的复杂度,并提供了多种度量方法。在前端开发中,代码质量的管理是非常重要的,而代码复杂度...

    6 年前
  • npm包esprima-fb使用教程

    在前端开发中,JavaScript是一种常用的编程语言。esprima-fb是一个非常有用的npm包,它可以将JavaScript代码转换成抽象语法树(AST),以便于代码分析和处理。

    6 年前
  • NPM 包私有使用教程

    什么是 NPM 包? NPM(Node.js 包管理器)是一个标准的 JavaScript 包管理器,可以用于管理和分享开源项目。它允许用户从一个中央化的仓库中安装、更新和删除软件包。

    6 年前
  • npm 包 babel-plugin-transform-es2015-modules-reify 使用教程

    在前端开发中,经常需要将 ES6 (ES2015)的模块化代码转换成 CommonJS 或 AMD 格式的代码,以便在浏览器中使用。其中一个实现此功能的 NPM 包是 babel-plugin-tra...

    6 年前
  • NPM 包 Reify 使用教程

    Reify 是一个 Node.js 模块,它可以帮助你在运行时快速加载 CommonJS 模块。它的目标是提高 Node.js 的性能。 安装 Reify 使用 npm 可以方便地安装 Reify: ...

    6 年前
  • npm 包 recast 使用教程

    简介 Recast 是一个 JavaScript AST(抽象语法树)重构库,它允许你在不破坏原始代码的情况下修改和重新生成代码。Recast 的主要特点是速度快和易于使用。

    6 年前
  • npm包jscodeshift使用教程

    介绍 jscodeshift是一个基于AST转换的工具,用于自动化重构和修改Javascript代码。它可以让你在不手动编辑代码的情况下进行大规模代码更改,从而提高效率和代码质量。

    6 年前
  • npm 包 eslint-plugin-jsx-a11y 使用教程

    在前端开发中,我们经常需要编写符合无障碍标准的代码以提高可访问性。若没有合适的工具辅助编写,则会变得繁琐且容易出错。这时候,eslint-plugin-jsx-a11y 就能很好地解决这个问题。

    6 年前
  • npm 包eslint-config-airbnb 使用教程

    介绍 eslint-config-airbnb 是 Airbnb 的官方 ESLint 配置包。该配置规则严格,适用于编写高质量的 JavaScript 代码。在前端开发中,使用 ESLint 可以帮...

    6 年前
  • npm 包 browzers 使用教程

    什么是 browzers? browzers 是一个基于 Node.js 和 Puppeteer 的库,可以帮助我们方便地进行网页自动化测试。使用 browzers 可以轻松模拟点击、输入等用户交互操...

    6 年前
  • npm 包 zuul 使用教程

    什么是 zuul? zuul 是一个基于 Node.js 开发的前端测试工具,它可以将代码部署到本地服务器,在不同的浏览器中运行测试用例,并生成测试报告。zuul 主要用于进行端到端(End-to-E...

    6 年前
  • npm 包 process 使用教程

    process 是 Node.js 中的一个全局对象,它提供了与当前进程相关的信息和控制。在前端开发中,我们可以使用 npm 包 process 来操作一些与浏览器有关的属性。

    6 年前
  • npm 包 path 使用教程

    path 是 Node.js 内置的一个核心模块,用于处理文件路径相关的操作。在前端开发中也经常会使用到该模块,特别是当需要动态生成或解析文件路径时。本文将介绍 path 的基本使用方法,并提供一些示...

    6 年前

相关推荐

    暂无文章