ruby-on-rails - Rails 清理方法添加双引号

标签 ruby-on-rails sql-injection sanitize

我正在使用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/

相关文章:

ruby-on-rails - rails/RSpec : mail render in spec results in missing template

c# - 有什么好的方法可以防止SQL注入(inject)?

doctrine - Symfony/Doctrine : does model_object->save() filter value?(防止 SQL 注入(inject))

ruby - 清理 gem(和丝瓜络)在标签内前导冒号之前删除文本

ruby-on-rails - 如何允许 <source> 标签通过 rails 4 清理?

ruby-on-rails - Ruby - 在循环中创建具有动态名称的方法

ruby-on-rails - SCSS 文件名

c# - 这会是 sql 注入(inject)的受害者吗

javascript - jQuery清理注释并链接URL

ruby-on-rails - 如何测试枚举操作方法在创建或保存之前验证对象?