rails安全问题

rails已经为我们防范了大部分的漏洞攻击。但是更具危险的漏洞, 大部分都是由于开发人员的代码问题导致的,讲几个由于代码问题导致的漏洞。

1.eval(可执行字符串) eval很强大,也很危险.

基本用法 文档

1
2
3
4
5
6
def get_binding(str)
return binding
end
str = "hello"
eval "str + ' Fred'" #=> "hello Fred"
eval "str + ' Fred'", get_binding("bye") #=> "bye Fred"

Unsafe

1
2
3
4
5
6
# xxx_controller.rb
def test_eavl
datas = (eval params[:model_name]).limit(10)
render :jons => datas
end

如果传参model_name = “rm -rf /“,后果是不可想像的