Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
Brakeman
提交
b65e6940
B
Brakeman
项目概览
李少辉-开发者
/
Brakeman
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Brakeman
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b65e6940
编写于
2月 04, 2014
作者:
J
Justin Collins
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ignore `*_id` calls in SQL
上级
f40686d8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
4 deletion
+18
-4
lib/brakeman/checks/check_sql.rb
lib/brakeman/checks/check_sql.rb
+2
-1
test/apps/rails3.1/app/models/user.rb
test/apps/rails3.1/app/models/user.rb
+2
-1
test/tests/rails31.rb
test/tests/rails31.rb
+14
-2
未找到文件。
lib/brakeman/checks/check_sql.rb
浏览文件 @
b65e6940
...
...
@@ -551,7 +551,8 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
safe_value?
exp
.
target
else
IGNORE_METHODS_IN_SQL
.
include?
exp
.
method
or
quote_call?
exp
quote_call?
exp
or
exp
.
method
.
to_s
.
end_with?
"_id"
end
when
:if
safe_value?
exp
.
then_clause
and
safe_value?
exp
.
else_clause
...
...
test/apps/rails3.1/app/models/user.rb
浏览文件 @
b65e6940
...
...
@@ -28,9 +28,10 @@ class User < ActiveRecord::Base
attr_accessible
:admin
,
:as
=>
:admin
def
self
.
sql_stuff
def
self
.
sql_stuff
parent_id
condition
=
parent_id
.
blank?
?
" IS NULL"
:
" =
#{
parent_id
}
"
self
.
connection
.
select_values
(
"SELECT max(id) FROM content_pages WHERE parent_content_page_id
#{
condition
}
"
)[
0
].
to_i
self
.
connection
.
select_values
(
"SELECT max(id) FROM content_pages WHERE child_content_page_id
#{
child_id
}
"
)[
0
].
to_i
# Should not warn
User
.
where
(
"
#{
table_name
}
.visibility = ?"
+
...
...
test/tests/rails31.rb
浏览文件 @
b65e6940
...
...
@@ -958,13 +958,25 @@ class Rails31Tests < Test::Unit::TestCase
def
test_sql_injection_with_interpolated_value
assert_warning
:type
=>
:warning
,
:warning_code
=>
0
,
:fingerprint
=>
"
37dc35cac607340b6244a25f7001fb6a67bf830b8c7395e4034f94c60f3d310e
"
,
:fingerprint
=>
"
fd5cc1e0538e8a08b47e85cb7a9a699358908d8049daaaa5609539aa8aa03278
"
,
:warning_type
=>
"SQL Injection"
,
:line
=>
33
,
:message
=>
/^Possible\ SQL\ injection/
,
:confidence
=>
1
,
:relative_path
=>
"app/models/user.rb"
,
:user_input
=>
s
(
:call
,
nil
,
:parent_id
)
:user_input
=>
s
(
:lvar
,
:parent_id
)
end
def
test_sql_injection_with_id_call
assert_no_warning
:type
=>
:warning
,
:warning_code
=>
0
,
:fingerprint
=>
"b9ade31073676589cf3b6a88de30105f67cc8170e87f2c2fd1c972f50ad2a3b3"
,
:warning_type
=>
"SQL Injection"
,
:line
=>
34
,
:message
=>
/^Possible\ SQL\ injection/
,
:confidence
=>
1
,
:relative_path
=>
"app/models/user.rb"
,
:user_input
=>
s
(
:call
,
nil
,
:child_id
)
end
def
test_validates_format
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录