Я получаю file access
предупреждение для следующего кода:путь атаки обхода в рельсах 4.1.0
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 доступа к файлам, вызывая доступ к файлам вне предполагаемого подкаталога.
Я попытался дезинфицировать Params с:
if !params[:image_name].gsub(/\\/, '').index('../')
#my code
end
, но это, кажется, не имеют никакого влияния на предупреждение hakiri предупреждения.
извините, ircmaxell! Я использовал это: '$ SAFE = 1, если params [: image_name] = ~"^[\ w \ -.] + $ " params [: image_name] .untaint', но не было никакого эффекта на предупреждение. – sonalkr132