【问题标题】:Rails 5 erb doesn't escape htmlRails 5 erb 不会转义 html
【发布时间】:2019-12-12 14:00:42
【问题描述】:

在 rails 5.2.3 erb 模板中:

<% input = "<script>alert('XSS')</script>" %>
<p><%= input %></p>

显示 &lt;script&gt;alert('XSS')&lt;/script&gt; 而不是 &gt.. 等

不是应该防止反射 xss 攻击吗? 如果从 params[:input]

检索输入,则会出现同样的问题

raw 是在 html 中输出的:

【问题讨论】:

  • 它在哪里显示?在用户查看的页面中,当然是这样显示的。但是在源代码中它被编码为&amp;lt;,所以它没有被执行。
  • 我添加了一张图片,显示它没有在源 html 中转义
  • 试试 ctrl-u :) 我的猜测是检查器正在为你格式化它,但它没有作为标签着色,所以它只是 DOM 中的一个文本节点。
  • 是的,我现在明白了。谢谢。

标签: xss erb ruby-on-rails-5.2


【解决方案1】:

需要查看源码 ctrl+u 正如 Gabor 建议的那样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2016-11-24
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多