Brakemanからこの警告が届いています。彼らが言うように、ユーザが提供する値に依存するリダイレクトは、ウェブサイトを "偽装"したり、無害なURLで悪質なリンクを隠すために使用できます。また、目的地が検証されていない場合、サイトの制限されたエリアにアクセスすることもできます。私のコントローラでRails、S3、Paperclip用のBrakeman保護されていないリダイレクト
| 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
)続くこと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のレポートは変更されませんでした。
どのように進めるか?