持久XSS和非持久XSS之间的主要差异和定义

时间:2016-05-25 11:16:58

标签: javascript php jquery security

Persistent XSS和Non-Persistent XSS之间有哪些主要区别?

2 个答案:

答案 0 :(得分:5)

正如命名所示,持久性和非持久性XSS之间的区别如下:

持久性XSS

存储的XSS,在cookie或服务器的数据库中。

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

如果聊天应用程序将所有用户消息存储到数据库中,并且用户可以发送一串HTML,例如<script>alert('XSS');</script>,那么每次用户访问cha应用程序时都会执行该代码。

非持久性XSS

在客户端上执行XSS,例如在URL中执行的JavaScript或者用户被欺骗将JavaScript粘贴到他们的控制台中。

非持久性XSS的示例

您可以在浏览器中执行javascript:alert('XSS'),但大多数现代浏览器都不允许您将其复制/粘贴到网址中。

您可以阅读有关此here的更多信息。

答案 1 :(得分:3)

(资料来源:https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

存储的XSS /持久性XSS

  

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

示例:

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

      

    反射攻击是注入脚本被反射出来的攻击   Web服务器,例如错误消息,搜索结果或任何   包含部分或全部输入的其他响应   服务器作为请求的一部分。反映的攻击被传递给   受害者通过另一条路线,例如在电子邮件中或某些路线上   其他网站。当用户被欺骗点击恶意攻击时   链接,提交特制表格,甚至只是浏览   恶意网站,注入的代码传播到易受攻击的网站,   这反映了攻击回到用户的浏览器。浏览器然后   执行代码,因为它来自一个&#34; trusted&#34;服务器。反射的   XSS有时也称为非持久性或II型XSS。

    示例:

    1. 将用户定向到http://victim.host/?a=<payload>,此有效负载会直接在网站上输出并执行。您可以在搜索和错误页面中找到此行为。
    2. 注意:在当前浏览器中,如果在URL中看到一个JavaScript字符串,它会反映在网站上,它将被阻止。这取决于整个页面是否被阻止或只是一个脚本。