我知道我可以在视图中使用ActionView助手strip_tags
方法来清理输出,但是在将用户输入保存到我的数据库之前,清除用户输入的最佳方法是什么?我应该找到一种方法在我的控制器中包含视图助手并重用strip_tags方法吗?我认为rails会在全球范围内提供类似的东西。
答案 0 :(得分:4)
xss_terminate插件怎么样?
答案 1 :(得分:0)
答案 2 :(得分:-2)
为什么需要清理用户的输入?
通常情况下,只要您打印或将其嵌入到更大的输出块中,就需要对用户输入进行严格的上下文感知编码/转义。
答案 3 :(得分:-2)
为什么要清理用户输入?这甚至没有任何意义!您总是希望清理(转义)输出而不是输入,因为清理的含义取决于您使用内容的上下文。没有任何字符串在任何上下文中都是安全的。在您的应用程序今天使用它们的任何场景中,您不希望数据库中存在一堆“安全”的错误字符串,因为明天,您可能希望对它们执行不同的操作。如果您的表示层正在做正确的事情(根据上下文转义内容),那么无论引用多少引号,反斜杠或DROP TABLE语句,您都可以。