Brakeman으로부터 경고 메시지가 표시됩니다. 그들은 사용자가 제공 한 값에 의존하는 리디렉션을 사용하여 웹 사이트를 "속이거나"무해한 URL의 악성 링크를 숨길 수 있습니다. 또한 대상의 유효성이 확인되지 않은 경우 사이트의 제한된 영역에 대한 액세스를 허용 할 수도 있습니다. 내 컨트롤러에서Brakeman의 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
내가 (아마존 S3에 저장된 파일 및 종이 클립에 내 데이터베이스 덕분에 URL) 파일의 URL을 소요하고 URL을 생성하는 방법 download
을 만들어 (즉. document_url
) 지속될 것 내가 성공하지 않고 통과 동수의 검증을 시도하고있다 .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
3 초 (사용자가 다운로드 할 수) 감사합니다. 위에서 볼 수 있듯이 내 도메인이 URL에 있는지 확인하려고했지만 Brakeman에 대한 보고서는 변경되지 않았습니다.
어떻게 진행할 수 있습니까?