Ruby on rails 清理Rails中的输出

Ruby on rails 清理Rails中的输出,ruby-on-rails,security,xss,Ruby On Rails,Security,Xss,在Rails中清理输出HTML(以避免XSS攻击)的最佳解决方案是什么 我有两个选择:白名单插件或消毒助手的消毒方法。对于我来说,直到今天,白名单插件工作得更好,在过去,Sanitize是非常有缺陷的,但作为核心的一部分,它可能会在开发中并支持一段时间。我推荐。我认为h helper方法在这里可以工作: <%= h @user.profile %> 这将跳过尖括号,从而消除任何嵌入式JavaScript。当然,这也将消除用户可能使用的任何格式 如果你想要格式化,也许可以看看ma

在Rails中清理输出HTML(以避免XSS攻击)的最佳解决方案是什么


我有两个选择:白名单插件或消毒助手的消毒方法。对于我来说,直到今天,白名单插件工作得更好,在过去,Sanitize是非常有缺陷的,但作为核心的一部分,它可能会在开发中并支持一段时间。

我推荐。

我认为h helper方法在这里可以工作:

<%= h @user.profile %>

这将跳过尖括号,从而消除任何嵌入式JavaScript。当然,这也将消除用户可能使用的任何格式


如果你想要格式化,也许可以看看markdown。

我个人认为在任何web应用程序中接受任何HTML条目都不是一个小决定。您可以随意测试白/黑名单标记,但除非您测试正确的嵌套,否则可能会有人输入一系列结束标记,例如

</td></tr></span></div>

把你的布局搞得一团糟

我通常会给人们一些类似纺织品的东西来输入他们的标记,因为我宁愿把时间花在业务逻辑上,而不是HTML解析上


当然,如果这个文本条目对你的应用程序来说更为重要(例如stackoverflow),那么你可能应该更加注意自己的手动滚动。

这个解决方案似乎很旧。也许这里有更好的报道: