9

我知道我可以strip_tags在我的视图中使用 ActionView 辅助方法来清理输出,但是在将用户输入保存到我的数据库之前清理用户输入的最佳方法是什么?我应该找到一种方法将视图助手包含在我的控制器中并重用 strip_tags 方法吗?我认为 Rails 会有一些全球可用的东西来做这样的事情。

4

4 回答 4

4

xss_terminate插件呢?

于 2009-10-18T07:45:58.810 回答
0

也许对宝石进行消毒:http ://wonko.com/post/sanitize

于 2009-10-18T07:50:45.010 回答
-1

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

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

于 2009-10-18T05:11:19.507 回答
-1

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

于 2012-05-28T02:28:07.580 回答