【发布时间】:2017-01-20 11:00:00
【问题描述】:
我有一个 Rails 3.2 应用程序,它使用 ActiveResource 与第三方 XML API 交互以获取某些数据。我们希望确保在该第 3 方 XML 中防止 XSS,因此我们启用了:
ActiveSupport.escape_html_entities_in_json = true
这似乎适用于 XML 数据,并将潜在危险脚本调用中的 <,如下所示:
<script>alert('xss')</script>
(不知道为什么它只逃避 lt TBH,但它似乎是设计使然)
问题是当我将该 XML 转换为 JSON 并发送到浏览器时,浏览器将其视为未转义。发送到浏览器的 JSON 字符串如下所示:
\u003Cscript\u003Ealert('xss')\u003C/script\u003E"
谁能解释为什么浏览器将其转换回未转义的字符串,并提出解决方法?
FWIW 我正在使用 Backbone、Jquery、JST 和 EJS
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby-on-rails-3 security