activerecord安全传递参数的方法

提示:如有转载请注明作者 小游戏 及出处

 

当我们进行进行activerecord操作时, :conditions使我们最为常用的组合条件表达式的地方,有几种方式可以把外部参数传入其中

1.用#{para}的方式传递参数,但是这种方式最不安全,容易被sql注入攻击

2.conditions值为一数组,数组的第一个元素为模板字符串,用?当占位符,其他元素为实际值,代替前面的占位符,如conditions=>['a=? and b=?', 10, 20]

3.conditions值为一数组,数组的第一个元素为模板字符串,用命名的占位符,占位符的表示方式以:为开始,也就是ruby中的符号类型, 第二个元素是个哈希表,要替代的元素都在这里面表示,如果conditions=>['a=:a and b=:b',{:a=>10, :b=>20}]

4.like从句的构造也要遵从上面的原则,不能用?与字符产在模板中构成从句,也就是["a like '?eee'", 'ddd']不正确,而[“a like ?”, '?' + 'ddd']是正确的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值