Rails安全性:允许斜杠作为用户输入

时间:2015-04-27 14:18:28

标签: ruby-on-rails ruby-on-rails-3 security

我有一个Rails 3.2.21应用程序。我的一个用户有一个斜线地址(想想Main Street 32​​1 1/2)。目前,我们过滤掉斜杠,这使得该用户的地址在我们的系统中无效。如何在不禁用此特定地址的验证或允许全局斜杠(巨大的安全风险)的情况下允许此地址通过?有没有办法可以对斜杠进行编码,将其放入数据库并在检索时将其编码回斜杠?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

只允许斜线可以增加XSS的可能性

不是真的。在您可能意外注入具有XSS潜力的内容(HTML,JavaScript字符串文字)的地方,斜杠不是特殊字符。在任何情况下,输入验证都不是解决注入问题的正确位置。

斜杠可能会影响的漏洞类别是文件路径注入(通常会导致通过目录遍历进行不需要的文件访问)。但仍然需要担心的是你创建文件路径的地方。

  

有没有办法可以对斜杠进行编码,将其放入数据库并在检索时将其编码回斜杠?

不需要保护数据库不受斜杠的影响。如果你这样做了, 你的代码中的任何XSS或文件路径问题都不会存在于数据库中 - 你仍然会像以前一样容易受到攻击。