【发布时间】:2019-12-12 14:00:42
【问题描述】:
在 rails 5.2.3 erb 模板中:
<% input = "<script>alert('XSS')</script>" %>
<p><%= input %></p>
显示 <script>alert('XSS')</script> 而不是 >.. 等
不是应该防止反射 xss 攻击吗? 如果从 params[:input]
检索输入,则会出现同样的问题raw 是在 html 中输出的:
【问题讨论】:
-
它在哪里显示?在用户查看的页面中,当然是这样显示的。但是在源代码中它被编码为
&lt;,所以它没有被执行。 -
我添加了一张图片,显示它没有在源 html 中转义
-
试试 ctrl-u :) 我的猜测是检查器正在为你格式化它,但它没有作为标签着色,所以它只是 DOM 中的一个文本节点。
-
是的,我现在明白了。谢谢。
标签: xss erb ruby-on-rails-5.2