Persistent XSS和Non-Persistent XSS之间有哪些主要区别?
答案 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有时也称为持久性或 Type-I XSS。
示例:
http://victim.host/notfound?<img src=0 onerror=Alert(1)>
。此get存储在服务器上的日志文件中,如果日志文件通过浏览器解释为HTML,则有效负载将被执行。反射攻击是注入脚本被反射出来的攻击 Web服务器,例如错误消息,搜索结果或任何 包含部分或全部输入的其他响应 服务器作为请求的一部分。反映的攻击被传递给 受害者通过另一条路线,例如在电子邮件中或某些路线上 其他网站。当用户被欺骗点击恶意攻击时 链接,提交特制表格,甚至只是浏览 恶意网站,注入的代码传播到易受攻击的网站, 这反映了攻击回到用户的浏览器。浏览器然后 执行代码,因为它来自一个&#34; trusted&#34;服务器。反射的 XSS有时也称为非持久性或II型XSS。
示例:强>
http://victim.host/?a=<payload>
,此有效负载会直接在网站上输出并执行。您可以在搜索和错误页面中找到此行为。注意:在当前浏览器中,如果在URL中看到一个JavaScript字符串,它会反映在网站上,它将被阻止。这取决于整个页面是否被阻止或只是一个脚本。