1

Googleのウェブマスターブログは、Open Redirect Protectionの悪用を防ぐ方法についていくつかの解決策を書いています。私はかなり長い間、そこにある解決策のいくつかに戸惑いました。グーグルを試しましたが、結果が見つかりませんでした。

  1. リダイレクトコードを変更してリファラーを確認します
  2. ホワイトリストの使用を検討する
  3. リダイレクトに署名することを検討してください
  4. 特にオフサイトリダイレクトを禁止する

解決策についての私の推測:

  1. %{HTTP­_RE­FERER}URLリクエストのチェックを行うために使用します
  2. URLリクエストで正規表現を使用して、URLリクエストのサイトが正規表現の範囲内にあるかどうかを確認します
  3. 何も考えられない
  4. 何も考えられない

私の推測が正しいかどうかを教えてください。正しくない場合は、PHPまたはApacheで正しく行う方法を教えてください。ありがとう!

4

2 に答える 2

1
  1. 正しいですが、これは信頼できるアプローチではありません。HTTPリファラーを操作できます。
  2. リダイレクトを許可するURLのリストを定義し、このリストと比較して、他のURLへのリダイレクトをキャンセルします。
  3. リダイレクトのソルトハッシュをリダイレクトパラメータとして追加します。リダイレクトする前に、リクエストパラメータでそのハッシュを確認してください。計算されたハッシュがリクエストパラメータのハッシュと同じである場合、おそらくリクエスト操作は行われていません->リダイレクトを実行できます。これにより、誰かがハッシュ生成アルゴリズムを推測しない限り、リダイレクトが実行されるのを防ぎます(そのため、秘密鍵でそれをソルトする必要があります)。
  4. ホストとしてあなたのウェブサイトを含まないURLにつながるすべてのリダイレクトをキャンセルします。これは、2で推測したように正規表現を使用して実行できます。
于 2012-05-23T08:06:33.313 に答える
0

アプリケーションがユーザー提供のコンテンツに基づいて、つまりPOSTまたはGETによってブラインドリダイレクトを実行すると、オープンリダイレクトが可能になります。オープンリダイレクトは、フィッシング攻撃によって最も一般的に悪用されます。

Open Redirectsを防ぐには、URLがユーザー入力からのものである場合に、リダイレクト先のURLを検証および検証する必要があります。ホワイトリストに基づいて検証する必要があります。

于 2012-05-23T07:55:00.827 に答える