现在我正在学习Web安全性,XSS等。由于XSS基本上是通过注入一些恶意代码来定位客户端代理(Web浏览器),这些恶意代码是由经过身份验证的用户插入的Web浏览器执行的。现在的问题是为什么我们不能在html中显示只显示文字的标记并阻止其中的任何内容的执行?
类似的东西:
<!-- The code below will not be executed and just treated as literal content by a web browser -->
<ltrl>
<script type="text/javascript">alert('You have been xssed');</script>
</ltrl>
所以,如果我在html中有这样的东西,那么它显示为
<script type="text/javascript">alert('You have been xssed');</script>
在网络浏览器中。
答案 0 :(得分:8)
假设攻击者提供的文本内容为:
</ltrl>
<script type="text/javascript">alert('You have been xssed');</script>
<ltrl>
总标记为
<ltrl>
</ltrl>
<script type="text/javascript">alert('You have been xssed');</script>
<ltrl>
</ltrl>
并且你的防守被轻易破坏了。