Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
Brakeman
提交
03be9d0b
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 搜索 >>
提交
03be9d0b
编写于
7月 24, 2012
作者:
J
Justin Collins
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'user_input_in_or_is_immediate'
上级
6a5f9cb0
6ecdcef8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
60 addition
and
2 deletion
+60
-2
lib/brakeman/checks/base_check.rb
lib/brakeman/checks/base_check.rb
+3
-0
test/apps/rails2/app/controllers/home_controller.rb
test/apps/rails2/app/controllers/home_controller.rb
+12
-0
test/apps/rails2/app/views/home/test_xss_with_or.html.erb
test/apps/rails2/app/views/home/test_xss_with_or.html.erb
+7
-0
test/tests/test_rails2.rb
test/tests/test_rails2.rb
+38
-2
未找到文件。
lib/brakeman/checks/base_check.rb
浏览文件 @
03be9d0b
...
...
@@ -296,6 +296,9 @@ class Brakeman::BaseCheck < Brakeman::SexpProcessor
when
:if
(
sexp?
exp
[
2
]
and
has_immediate_user_input?
exp
[
2
])
or
(
sexp?
exp
[
3
]
and
has_immediate_user_input?
exp
[
3
])
when
:or
has_immediate_user_input?
exp
[
1
]
or
has_immediate_user_input?
exp
[
2
]
else
false
end
...
...
test/apps/rails2/app/controllers/home_controller.rb
浏览文件 @
03be9d0b
...
...
@@ -127,6 +127,18 @@ class HomeController < ApplicationController
User
.
new
(
params
[
:still_bad
])
end
def
test_xss_with_or
@params_or_something
=
params
[
:x
]
||
something
if
some_condition
@user_input
=
true
else
@user_input
=
params
[
:y
]
end
@more_user_input
=
x
||
params
[
:z
]
||
z
end
private
def
filter_it
...
...
test/apps/rails2/app/views/home/test_xss_with_or.html.erb
0 → 100644
浏览文件 @
03be9d0b
<%=
params
[
:x
]
||
nil
%>
<%=
@params_or_something
%>
<%=
@user_input
%>
<%=
@more_user_input
%>
test/tests/test_rails2.rb
浏览文件 @
03be9d0b
...
...
@@ -11,13 +11,13 @@ class Rails2Tests < Test::Unit::TestCase
@expected
||=
{
:controller
=>
1
,
:model
=>
2
,
:template
=>
27
,
:template
=>
31
,
:warning
=>
29
}
else
@expected
||=
{
:controller
=>
1
,
:model
=>
2
,
:template
=>
27
,
:template
=>
31
,
:warning
=>
30
}
end
end
...
...
@@ -593,6 +593,42 @@ class Rails2Tests < Test::Unit::TestCase
:file
=>
/home\/test_render_template\.html\.haml/
end
def
test_xss_with_or_in_view
assert_warning
:type
=>
:template
,
:warning_type
=>
"Cross Site Scripting"
,
:line
=>
1
,
:message
=>
/^Unescaped\ parameter\ value/
,
:confidence
=>
0
,
:file
=>
/test_xss_with_or\.html\.erb/
end
def
test_xss_with_or_from_action
assert_warning
:type
=>
:template
,
:warning_type
=>
"Cross Site Scripting"
,
:line
=>
3
,
:message
=>
/^Unescaped\ parameter\ value/
,
:confidence
=>
0
,
:file
=>
/test_xss_with_or\.html\.erb/
end
def
test_xss_with_or_from_if_branches
assert_warning
:type
=>
:template
,
:warning_type
=>
"Cross Site Scripting"
,
:line
=>
5
,
:message
=>
/^Unescaped\ parameter\ value/
,
:confidence
=>
0
,
:file
=>
/test_xss_with_or\.html\.erb/
end
def
test_xss_with_nested_or
assert_warning
:type
=>
:template
,
:warning_type
=>
"Cross Site Scripting"
,
:line
=>
7
,
:message
=>
/^Unescaped\ parameter\ value/
,
:confidence
=>
0
,
:file
=>
/test_xss_with_or\.html\.erb/
end
def
test_check_send
assert_warning
:type
=>
:warning
,
:warning_type
=>
"Dangerous Send"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录