Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails 4.1.0中的路径遍历攻击_Ruby On Rails_Security_Brakeman - Fatal编程技术网

Ruby on rails rails 4.1.0中的路径遍历攻击

Ruby on rails rails 4.1.0中的路径遍历攻击,ruby-on-rails,security,brakeman,Ruby On Rails,Security,Brakeman,我收到以下代码的文件访问警告: FileUtils.rm(File.join(Project.with_deleted.find_by( :user_id => (User.find_by(:username => (params[:user_id])).id), :name => (params[:id]) ).satellitedir, params[:image_name])) 警告是: 当用户提供的输入可以包含“.”或类似字符时 传递给文件访问API,导致对文

我收到以下代码的
文件访问
警告:

FileUtils.rm(File.join(Project.with_deleted.find_by(
  :user_id => (User.find_by(:username => (params[:user_id])).id),
  :name => (params[:id])
).satellitedir, params[:image_name]))
警告是:

当用户提供的输入可以包含“.”或类似字符时 传递给文件访问API,导致对文件的访问 在指定的子目录之外

我尝试用以下方法清理参数:

 if !params[:image_name].gsub(/\\/, '').index('../')
   #my code
 end

但这似乎对警告的警告没有影响。

这种情况的发生是因为一种称为

基本上,
params
对象被“污染”,因为它被标记为来自用户输入


相反,您需要验证对象,然后自己将其卸载。这里有一篇关于它的好文章:

对不起,ircmaxell!我使用了这个:
$SAFE=1,如果参数[:image\u name]=~“^[\w\-.]+$”参数[:image\u name]。卸载
,但对警告没有影响。