浏览 4126 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-28
简单有效DRY的方法: where column = #{Base.connection.quote(value)} 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-02-28
你先说说看find_by_swql凭啥会有SQL注入问题?
|
|
返回顶楼 | |
发表时间:2008-02-28
find_by_swql是新的函数吗?还是笔误?
我记得这样子就可以了吧,["where aa=?,bb=?,cc=?",$aa,$bb,$cc] |
|
返回顶楼 | |
发表时间:2008-02-28
robbin 写道 你先说说看find_by_swql凭啥会有SQL注入问题?
当用到sql聚合函数,比如sum groub by,而且附带有查询条件的时候,不得不用动态生成的查询语句,如下: select orders.*,(select sum(PAIR) from items where order_id=orders.id) 'count' from orders where id=#{params[:id]} 在这种情况下,就有注入的可能 |
|
返回顶楼 | |
发表时间:2008-02-28
不好意思,网络问题,重复提交了.
|
|
返回顶楼 | |
发表时间:2008-02-28
同上
|
|
返回顶楼 | |
发表时间:2008-02-28
明明是你写的不对嘛,怎么能怪find_by_sql呢?
find_by_sql ["select ...... where id = ?", params[:id]] 我用占位符,请问你怎么给我SQL注入? |
|
返回顶楼 | |
发表时间:2008-02-28
ok,是我笔误,是paginate_by_sql.
paginate_by_sql 接受象[where id=?,params[:id]]这样的Array参数吗? |
|
返回顶楼 | |