存储的XSS和反射XS之间有什么区别



我无法理解存储的XSS和反射XSS之间的区别是什么。你能以一个例子告诉我吗?

存储的XSS表示某些 persistant data(通常存储在数据库中)没有在页面中进行消毒,这意味着每个人都会受到脆弱性的影响。例如,想象一个论坛,其中用户的答案不会被逃脱。如果有人在上面发布一个主题,上面有一些HTML,那么进入主题页面的每个人都会受到影响!这些风险通常很重要,因为它会影响所有用户并可能迅速广泛(一个典型的例子是MySpace XSS蠕虫,在20个小时内影响了100万用户)。

相反,

反映的XSS意味着未逃脱非持久数据(通常由客户提供的数据通过表单提交提供的数据)。例如,想象一个搜索引擎,在"结果列表"页面中,您的搜索关键字被重新播放(而不是消毒)。然后,您可以将HTML放在您的研究中,并将执行。尽管这种脆弱性的风险不太明显,但由于它仅影响注射的用户,这也可能是一个问题。例如,如果恶意用户将其注入的链接发送给受害者,而受害人点击链接。

,对系统对系统的影响

存储的XSS 持续到系统中,因此,任何来并阅读存储的内容的人都可以看到。例如,如果我在Wikipedia中编辑页面并注入一些JavaScript代码,所有新访问者都可以看到。

反射XSS 在另一方面就像我输入了一些代码,这单独反映给我。这通常不会对其他人可见,但是黑客可以使用 clickjacking 来利用这种漏洞。假设可以将搜索结果页面的URL参数转换为代码脚本。该网址可以通过电子邮件发送给人们,他们会单击它以查看我们业务网站上执行的恶意代码。尽管我们网站中没有此类代码,但缺乏输入验证将导致此类URL在我们的网站上显示恶意内容,好像它在那里一样,企业主将失去他们的品牌声誉。

以一种简单的方式,我们可以说存储的xxs表示存储数据已存储,但反射的XSS表示存储数据未存储。

最新更新