CGI.escapeHTML
là khá xấu, nhưng CGI.unescapeHTML
hoàn toàn bị bẻ khóa. Ví dụ:Có công cụ thoát HTML và unescaping tốt hơn so với CGI cho Ruby không?
require 'cgi'
CGI.unescapeHTML('…')
# => "…" # correct - an ellipsis
CGI.unescapeHTML('…')
# => "…" # should be "…"
CGI.unescapeHTML('¢')
# => "\242" # correct - a cent
CGI.unescapeHTML('¢')
# => "¢" # should be "\242"
CGI.escapeHTML("…")
# => "…" # should be "…"
Dường như unescapeHTML
biết về tất cả các mã số cộng &
, <
, >
, và "
. Và escapeHTML
chỉ biết về bốn người cuối cùng - nó không thực hiện bất kỳ mã số nào. Tôi hiểu rằng thoát thường không cần phải mạnh mẽ vì HTML sẽ cho phép các phiên bản chữ của hầu hết các ký tự ngoại trừ bốn ký tự mà CGI.escapeHTML
biết. Nhưng unescaping thực sự nên được tốt hơn.
Có công cụ nào tốt hơn không, ít nhất là để không thoát?
Nó không xử lý — một trong hai. – Chloe