【发布时间】:2016-01-27 23:55:23
【问题描述】:
rails sanitize 方法在看到锚标记时将单引号替换为双引号。
例子
sanitize("<a href='https://google.com'>google</a>")
=> "<a href=\"https://google.com\">google</a>"
这是有问题的,因为在我的应用程序中,我正在清理可能包含这些字符串的 JSON 有效负载,这会导致 JSON 格式错误。
JSON.parse("{\"link\":\"<a href='https://google.com'>google</a>\"}")
=> {"link"=>"<a href='https://google.com'>google</a>"}
JSON.parse(sanitize(("{\"link\":\"<a href='https://google.com'>google</a>\"}"))
=> JSON::ParseError
我无法控制输入字符串。有什么办法可以防止单引号转双引号?
【问题讨论】:
-
为什么不只清理用户输入(我不认为键是用户输入)而不是完整的 json?
标签: ruby-on-rails json ruby-on-rails-3 ruby-on-rails-4