2016-08-29 25 views
0

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のレポートは変更されませんでした。

どのように進めるか?

答えて

0

私にも同様の問題があります。私は以下のような強力なパラメータを利用して警告を受けましたが、なぜそれが動作するのかよく分かりません。

redirect_to referer_param 

def referer_param 
    params.require(:referer) 
end 
関連する問題