apa*_*jja 12 javascript node.js coffeescript
我不熟悉Javascript
学习模板node.js模板引擎,它有"Escaped"和"Unescaped"输出
究竟是什么"逃脱"和"非转义"输出?
它是否像"包括一次"和"包含"?
(谷歌没有给出任何结果)
the*_*eye 18
转义和取消转义对于防止Cross Site Scripting(XSS)攻击很有用.这是常见的网络攻击之一,因为如果网站设计不仔细,很容易创建攻击媒介.它的排名number 3 in the OWASP's Top 10 vulnerabilities of 2013.
主要目的是,不要让浏览器以不同于预期的方式执行或解释HTTP响应.
例如,假设您有一个网页接受用户输入他的地址,您希望用户在下一页确认.因此,您将获得用户输入的地址并将其显示在下一页中.如果用户输入有效地址,则不会出现问题.如果用户输入这样的内容怎么办?
<script>
alert("Welcome");
</script>
Run Code Online (Sandbox Code Playgroud)
您的下一页只会生成一个警告框Welcome.现在,考虑这种情况.您正在编写博客应用程序,用户在提供的文本框中输入上面显示的脚本.您将把它存储在数据库中,任何想要看到您的博客的人都可以看到该警报框.最糟糕的是,如果攻击者将其置于无限循环中,那么访问该博客的人将根本无法阅读该内容.
这只是基本攻击之一,如果你不逃避文本,这是可能的.
因此,通常,输入的文本用户将被转义然后存储在DB中.例如,上面看到的攻击向量(脚本标记的东西)将变成这样,之后HTML escaping
<script><br/> alert("Welcome");<br/></script>
Run Code Online (Sandbox Code Playgroud)
现在,浏览器不会将此视为脚本元素而是HTML元素,因此它会将其显示为
<script>
alert("Welcome");
</script>
Run Code Online (Sandbox Code Playgroud)
而不是执行它.
| 归档时间: |
|
| 查看次数: |
9560 次 |
| 最近记录: |