我正在使用ActiveRecord::Base.sanitize
方法来避免SQL注入(inject)攻击。
我的问题是,无论何时清理用户输入,都会返回输出,并在字符串开头的单引号之前和字符串末尾的单引号之后添加额外的双引号。
示例:
ActiveRecord::Base.sanitize("Test")
=> "'Test'"
我期望它返回“Test”
或'Test'
。为什么它返回 "'Test'"
??
谢谢, 桑杰·萨伦克
最佳答案
sanitize
正在按预期工作。这里的问题是 Rails 控制台:
ActiveRecord::Base.sanitize("Test")
=> "'Test'"
puts ActiveRecord::Base.sanitize("Test")
'Test'
=> nil
控制台会自动用额外的“”包裹结果。
关于ruby-on-rails - Rails 清理方法添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36418997/