我一直在阅读你在从服务器回到客户端的路上的HTML编码(我认为?),这将阻止许多类型的XSS攻击.但是,我根本不明白. HTML仍然会被浏览器消耗和呈现吗?
这是怎么阻止的?
我已经在多个地点,网站和书籍中读到了这一点,并且它实际上无法解释为什么这样做.
解决方法
想一想:编码的HTML看起来像什么?例如,它可能如下所示:
<a href="www.stackoverflow.com">
因此它将作为文字呈现在客户端上(如< a href =“www.stackoverflow.com”>),而不是HTML.这意味着你不会看到实际的链接,而是代码本身.
XSS攻击的工作原理是有人可以让客户端浏览器解析网站提供商不打算在那里的HTML;如果以上内容未编码,则意味着所提供的链接将嵌入网站中,尽管网站提供商不希望如此.
XSS当然比这更复杂,并且通常也涉及JavaScript(因此是跨站点脚本),但出于演示目的,这个简单的例子应该足够了;它与JavaScript代码和简单的HTML标记相同,因为XSS是更一般的HTML注入的特例.