Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
Brakeman
提交
2738c6cf
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 搜索 >>
提交
2738c6cf
编写于
1月 19, 2015
作者:
J
Justin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #605 from github/add_interp_string_lib_test
Process inner body expressions in library methods
上级
d671c9ac
3b4ff891
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
2 deletion
+23
-2
lib/brakeman/processors/library_processor.rb
lib/brakeman/processors/library_processor.rb
+4
-0
test/apps/rails4/lib/sweet_lib.rb
test/apps/rails4/lib/sweet_lib.rb
+5
-0
test/tests/rails4.rb
test/tests/rails4.rb
+14
-2
未找到文件。
lib/brakeman/processors/library_processor.rb
浏览文件 @
2738c6cf
...
...
@@ -106,8 +106,10 @@ class Brakeman::LibraryProcessor < Brakeman::BaseProcessor
exp
.
node_type
=
:methdef
if
@current_class
exp
.
body
=
process_all!
exp
.
body
@current_class
[
:public
][
exp
.
method_name
]
=
{
:src
=>
exp
,
:file
=>
@file_name
}
elsif
@current_module
exp
.
body
=
process_all!
exp
.
body
@current_module
[
:public
][
exp
.
method_name
]
=
{
:src
=>
exp
,
:file
=>
@file_name
}
end
...
...
@@ -119,8 +121,10 @@ class Brakeman::LibraryProcessor < Brakeman::BaseProcessor
exp
.
node_type
=
:selfdef
if
@current_class
exp
.
body
=
process_all!
exp
.
body
@current_class
[
:public
][
exp
.
method_name
]
=
{
:src
=>
exp
,
:file
=>
@file_name
}
elsif
@current_module
exp
.
body
=
process_all!
exp
.
body
@current_module
[
:public
][
exp
.
method_name
]
=
{
:src
=>
exp
,
:file
=>
@file_name
}
end
...
...
test/apps/rails4/lib/sweet_lib.rb
浏览文件 @
2738c6cf
...
...
@@ -2,4 +2,9 @@ class SweetLib
def
do_some_cool_stuff
bad
`ls
#{
bad
}
`
end
def
test_find_group
#Should warn, no escaping done for :group
system
(
"rm
#{
@bad
}
"
)
end
end
test/tests/rails4.rb
浏览文件 @
2738c6cf
...
...
@@ -16,7 +16,7 @@ class Rails4Tests < Test::Unit::TestCase
:controller
=>
0
,
:model
=>
1
,
:template
=>
2
,
:generic
=>
4
7
:generic
=>
4
8
}
end
...
...
@@ -555,7 +555,7 @@ class Rails4Tests < Test::Unit::TestCase
def
test_command_injection_in_library
assert_warning
:type
=>
:warning
,
:warning_code
=>
14
,
:fingerprint
=>
"
9a11e7271784d69c667ad82481596096781a4873297d3f7523d290f51465f9d6
"
,
:fingerprint
=>
"
21857e8872d187312a0b2470876bf6c8a8885df84c510d766f4639d95ae7cef7
"
,
:warning_type
=>
"Command Injection"
,
:line
=>
3
,
:message
=>
/^Possible\ command\ injection/
,
...
...
@@ -564,6 +564,18 @@ class Rails4Tests < Test::Unit::TestCase
:user_input
=>
s
(
:lvar
,
:bad
)
end
def
test_command_injection_interpolated_string_in_library
assert_warning
:type
=>
:warning
,
:warning_code
=>
14
,
:fingerprint
=>
"69855e4f6509c389b337195c00517b13b89a69773dcd1281ee3ae5577c8f2cf0"
,
:warning_type
=>
"Command Injection"
,
:line
=>
8
,
:message
=>
/^Possible\ command\ injection/
,
:confidence
=>
1
,
:relative_path
=>
"lib/sweet_lib.rb"
,
:user_input
=>
s
(
:ivar
,
:@bad
)
end
def
test_command_injection_from_not_skipping_before_filter
assert_warning
:type
=>
:warning
,
:warning_code
=>
14
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录