我有一个Rails 3.2.21应用程序。我的一个用户有一个斜线地址(想想Main Street 321 1/2)。目前,我们过滤掉斜杠,这使得该用户的地址在我们的系统中无效。如何在不禁用此特定地址的验证或允许全局斜杠(巨大的安全风险)的情况下允许此地址通过?有没有办法可以对斜杠进行编码,将其放入数据库并在检索时将其编码回斜杠?
谢谢!
答案 0 :(得分:1)
只允许斜线可以增加XSS的可能性
不是真的。在您可能意外注入具有XSS潜力的内容(HTML,JavaScript字符串文字)的地方,斜杠不是特殊字符。在任何情况下,输入验证都不是解决注入问题的正确位置。
斜杠可能会影响的漏洞类别是文件路径注入(通常会导致通过目录遍历进行不需要的文件访问)。但仍然需要担心的是你创建文件路径的地方。
有没有办法可以对斜杠进行编码,将其放入数据库并在检索时将其编码回斜杠?
不需要保护数据库不受斜杠的影响。如果你这样做了, 你的代码中的任何XSS或文件路径问题都不会存在于数据库中 - 你仍然会像以前一样容易受到攻击。