在rails中清理输入XSS和HTML输入

时间:2009-10-18 02:14:52

标签: ruby-on-rails input xss sanitize

我知道我可以在视图中使用ActionView助手strip_tags方法来清理输出,但是在将用户输入保存到我的数据库之前,清除用户输入的最佳方法是什么?我应该找到一种方法在我的控制器中包含视图助手并重用strip_tags方法吗?我认为rails会在全球范围内提供类似的东西。

4 个答案:

答案 0 :(得分:4)

xss_terminate插件怎么样?

答案 1 :(得分:0)

可能消毒宝石:http://wonko.com/post/sanitize

答案 2 :(得分:-2)

为什么需要清理用户的输入?

通常情况下,只要您打印或将其嵌入到更大的输出块中,就需要对用户输入进行严格的上下文感知编码/转义。

答案 3 :(得分:-2)

为什么要清理用户输入?这甚至没有任何意义!您总是希望清理(转义)输出而不是输入,因为清理的含义取决于您使用内容的上下文。没有任何字符串在任何上下文中都是安全的。在您的应用程序今天使用它们的任何场景中,您不希望数据库中存在一堆“安全”的错误字符串,因为明天,您可能希望对它们执行不同的操作。如果您的表示层正在做正确的事情(根据上下文转义内容),那么无论引用多少引号,反斜杠或DROP TABLE语句,您都可以。