當看到錨標記時,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? –