Я получаю это предупреждение от Brakeman. Как говорится, перенаправления, которые полагаются на предоставленные пользователем значения, могут использоваться для «обманывания» веб-сайтов или скрытия вредоносных ссылок в других безопасных URL-адресах. Они также могут разрешать доступ к запрещенным областям сайта, если адресат не проверен.Brakeman unprotected redirect for Rails, S3, Paperclip
| Confidence | Class | Method | Warning Type | Message | High | DocumentsController | download | Redirect | Possible unprotected redirect near line 46: redirect_to(+Document.find(params[:id]).f
В моем контроллере я создал метод download
, который принимает файл URL (файл хранится на Amazon S3 и URL в моей базе данных, благодаря Скрепке) и создает URL (то есть. document_url
), который будет длиться 3 секунды (для пользователя, чтобы скачать) благодаря .expiring_url(3)
def download
@document = Document.find(params[:id])
document_url = @document.file.expiring_url(3)
if URI.parse(document_url).host.include? "domain.com"
redirect_to document_url, only_path: true
else
document_url = nil
end
end
Я пытался пройти проверку кондуктор без успеха. Как вы можете видеть выше, я попытался проверить, присутствует ли мой домен в URL-адресе, но он не изменил отчет о Brakeman.
Любая идея, как действовать?