提问人:Hemant Goyal 提问时间:5/23/2018 更新时间:5/23/2018 访问量:457
如何使用 POST 请求防止 ruby on rails 中的 SQL 注入
how to prevent SQL injection in ruby on rails with post request
问:
我在 ROR 代码中收到一个安全错误,当我在代码上运行 OWASP Zed 攻击代理 (ZAP) 工具时,可以在一个 post 请求中注入 SQL。 我有一个不带任何参数的get_auth_token方法,ZAP工具在此请求中添加了一个查询参数,并且在执行修饰符请求时,页面加载正常,这是一个问题
下面是添加了查询参数的修改后的 url
https://example.com/api/sessions/get_auth_token?query=query+AND+1%3D1+--+
get_auth_token实现如下所示
def get_auth_token
user = User.find_by(id: session[:user_id], disabled: false)
if session[:user_id]
if user
token = AuthToken.issue(user_id:user.username)
session[:user_id] = user.id
session[:username] = user.username
session[:project_id] = user.get_setting('xyz', nil)
User.update(user.id, :token=>token)
我不想将此请求转换为 GET。我看过很多防止SQL注入的例子,它们都集中在接受一些参数的方法上。我的方法不接受任何参数。如何确保它不接受任何外部参数来防止此SQL注入
答: 暂无答案
评论
raise if params[:query]
config.action_controller.raise_on_unfiltered_parameters = true