lak*_*are 14 sanitize html-safe ruby-on-rails-4 difference
我的视图中有两段代码:
<%= sanitize('<h3>winter</h3>') %>
<%= '<h3>winter</h3>'.html_safe %>
Run Code Online (Sandbox Code Playgroud)
它们似乎都导致在提供的字符串中编码html标签.它们之间有什么区别,我应该何时使用?
lak*_*are 19
这是两种截然不同的方法.
a = a.html_safe只会将字符串标记a为'html_safe'并在之后对其进行处理(将字符串标记为可信安全字符.它将插入HTML而不执行其他转义.您有责任确保该字符串不包含恶意内容.此方法等同raw于视图中的
帮助器.建议您使用sanitize而不是使用此方法.永远不应该在用户输入上调用它.).
a.sanitize另一方面,html将对所有标签进行编码并删除所有非特定允许的属性(如果需要,可以添加/删除允许的标签和属性).请注意,默认情况下会对用户输入进行清理,除非您特别允许使用raw(http://apidock.com/rails/ActionView/Helpers/OutputSafetyHelper/raw)html-markup,顺便说一下,html_safe这样做是为了标记它.
| 归档时间: |
|
| 查看次数: |
7271 次 |
| 最近记录: |