首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4中的SQL注入

Rails 4中的SQL注入
EN

Stack Overflow用户
提问于 2015-07-17 03:45:31
回答 2查看 52关注 0票数 2

我正在尝试了解SQL注入,并尝试实现这些注入,但是当我将这段代码放入控制器时:

代码语言:javascript
复制
params[:username] = "johndoe') OR admin = 't' --"
@user_query = User.find(:first, :conditions => "username = '#{params[:username]}'")

我得到以下错误:

代码语言:javascript
复制
Couldn't find all Users with 'id': (first, {:conditions=>"username = 'johndoe') OR admin = 't' --'"}) (found 0 results, but was looking for 2)

我已经创建了一个用户名为"johndoe“的用户模型,但我仍然没有得到适当的响应。顺便说一下,我使用的是Rails 4。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-17 03:55:21

你在使用一种古老的Rails语法。不要用

代码语言:javascript
复制
find(:first, :condition => <condition>) ...

相反,使用

代码语言:javascript
复制
User.where(<condtion>).first

find接受要查找记录的ID列表。您给它一个:first的ID和一个condition: ...的ID,这与任何记录都不匹配。

票数 2
EN

Stack Overflow用户

发布于 2015-07-17 07:23:04

代码语言:javascript
复制
User.where(attr1: value, attr2: value2)

或用于单一项目

代码语言:javascript
复制
User.find_by(attr1: value, attr2: value)

请记住,在执行所有这些操作时,通过在查询方法的末尾添加"to_sql“(据我记得,find_by只执行1的限制)来检查实际的sql语句是很有价值的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31468093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档