持久性 XSS 和非持久性 XSS 之间的主要区别和定义

问题描述 投票:0回答:2

持久性 XSS 和非持久性 XSS 之间的主要区别是什么?

javascript php jquery security
2个回答
7
投票

顾名思义,持久性 XSS 和非持久性 XSS 的区别如下。

持续性XSS

存储的 XSS,位于 cookie 或服务器数据库内。

聊天应用程序中持久性 XSS 示例

如果聊天应用程序将所有用户消息存储到数据库中,并且用户可以发送 HTML 字符串,例如

<script>alert('XSS');</script>
,那么每次用户访问聊天应用程序时都会执行该代码。

非持久性 XSS

在客户端执行 XSS,例如在 URL 中执行 JavaScript,或者诱骗用户将 JavaScript 粘贴到其控制台中。

非持久性 XSS 示例

您可以在浏览器中执行

javascript:alert('XSS')
,尽管大多数现代浏览器不允许您将其复制/粘贴到 URL 中。

您可以在此处阅读更多相关信息。


4
投票

来源

存储型 XSS/持久型 XSS

存储攻击是指注入的脚本永久保存的攻击 存储在目标服务器上,例如数据库中、消息中 论坛、访客日志、评论字段等。然后受害者检索 当服务器请求存储的恶意脚本时 信息。存储型 XSS 有时也称为持久性或 I 型 XSS。

示例:

  1. 在留言簿中写入 XSS 有效负载。有效负载被存储 在数据库内部并在每次用户访问时执行 留言簿
  2. 访问网站:
    http://victim.host/notfound?<img src=0 onerror=Alert(1)>
    。该 get 存储在服务器上的日志文件中,如果日志文件 get 通过浏览器被解释为 HTML,则有效负载 get 将被执行。

反射型 XSS/非持久型 XSS

反射攻击是指注入的脚本被反射掉的攻击 Web 服务器,例如错误消息、搜索结果或任何内容 其他响应,包括发送到的部分或全部输入 服务器作为请求的一部分。反射攻击被传递到 受害者通过其他途径,例如通过电子邮件或某些 其他网站。当用户被诱骗点击恶意内容时 链接、提交特制表格,甚至只是浏览 恶意网站,注入的代码传播到易受攻击的网站, 它将攻击反射回用户的浏览器。然后浏览器 执行代码,因为它来自“可信”服务器。反映 XSS 有时也称为非持久性或 II 类 XSS。

示例:

  1. 将用户引导至
    http://victim.host/?a=<payload>
    ,此有效负载将直接在网站上输出并执行。您主要可以在搜索和错误页面中找到此行为。

注意:在当前的浏览器中,如果在 URL 中看到 JavaScript 字符串并反映在网站上,则会被阻止。这取决于是整个页面被阻止还是只是一个脚本被阻止。

© www.soinside.com 2019 - 2024. All rights reserved.