当看到锚标记时,rails清理方法会用双引号替换单引号。Rails清理方法用双引号替换单引号
例
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? –