一个简化的例子是这样:
def expand_links(message)
message = strip_tags(message)
message = message.gsub('[register]') { link_to('register', new_user_path) }
message = message.gsub('[login]') { link_to('login', new_sessions_path) }
message.html_safe
end
我正在使用strip_tags
,但是请确保没有XSS的机会。
那么没有strip_tags
和html_safe
的话,正确的方法是什么?
答案 0 :(得分:2)
这是我在@iceman的suggestion中所做的事情:
def expand_links(message)
message = strip_tags(message)
message = message.gsub('[register]') { link_to('register', new_user_path) }
message = message.gsub('[login]') { link_to('login', new_sessions_path) }
sanitize(message, tags: ['a'], attributes: ['href'])
end
(BTW清理不适用于符号)
https://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html