プロキシサーバー経由で着信要求が行われているかどうかを検出できますか? WebアプリケーションがIPアドレスを介してユーザーを「禁止」した場合、プロキシサーバーを使用してこれを回避できます。これは、これらの要求をブロックする理由の1つに過ぎません。これはどのように達成できますか?要求がプロキシから来ているかどうかを確認するには?
答えて
私見では、これを達成するために何が100%信頼できる方法はありませんが、次のヘッダーのいずれかの存在は、要求がプロキシサーバーからルーティングされたことを強く示している:
via:
forwarded:
x-forwarded-for:
client-ip:
あなたはまたのために見ることができますプロキシまたはpxyクライアントドメイン名。
あなたがリクエストオブジェクトにこれらのヘッダを探して、それに応じて要求が 2を介して、プロキシ/ない
1)を経由しているかどうかを決定することができます)X-転送さ-について
ノートこれではないこと100%確実なショットトリックは、これらのプロキシサーバーが上記のヘッダーを追加するかどうかによって異なります。
プロキシサーバーが検出されないようにプロキシサーバーが適切に設定されていると、そのことを知ることができません。
ほとんどのプロキシサーバーは、他にも言及しているようにヘッダーを提供しますが、ユーザーを完全に隠すためのプロキシには存在しません。
このような状況を検出するには、Cookie、プロキシヘッダー検出、IPヒューリスティックなどの複数の検出方法を使用する必要があります。このような状況については、http://www.osix.net/modules/article/?id=765をご覧ください。また、プロキシブラックリストを使用することを検討してください - 多くの組織によって公開されています。
しかし、何も100%確実ではありません。上記の方法を使ってほとんどの単純な状況を避けることができますが、今日の終わりにはTCP/IPトランザクションを形成する一連のパケットであり、セキュリティ、認証などの今日のアイデアではTCP/IPプロトコルは開発されていません
多くの企業がさまざまな理由で企業規模のプロキシを導入していますが、プロキシを一般的なルールとしてブロックするだけでは、必ずしも視聴者を制限する必要があり、必ずしも望ましいとは限りません。しかし、これらのプロキシは通常、適切なヘッダーで自分自身を宣言します。隠れているユーザーではなく正当なユーザーをブロックする可能性があります。私のドメインは(感謝グーグル)それに注入素敵なハードコアポルノ広告でGoogleのAppSpot.com上にホストされてしまった後
-Adam
はこれに掘りのビットをしました。
これから葉を取るhtaccess idea私は以下のことを行っていますが、これはうまくいくようです。私は、AppSpotにHTTP_X_APPENGINE_COUNTRY ServerVariableを注入するための特別なルールを追加しました。
Dim varys As New List(Of String)
varys.Add("VIA")
varys.Add("FORWARDED")
varys.Add("USERAGENT_VIA")
varys.Add("X_FORWARDED_FOR")
varys.Add("PROXY_CONNECTION")
varys.Add("XPROXY_CONNECTION")
varys.Add("HTTP_PC_REMOTE_ADDR")
varys.Add("HTTP_CLIENT_IP")
varys.Add("HTTP_X_APPENGINE_COUNTRY")
For Each vary As String In varys
If Not String.IsNullOrEmpty(HttpContext.Current.Request.Headers(vary)) Then HttpContext.Current.Response.Redirect("http://www.your-real-domain.com")
Next
- 1. clickイベントソースがtheadから来ているかどうかを確認
- 2. パイプラインがプル要求からトリガされているかどうかを確認する方法
- 3. rails要求パラメータにファイルフィールドがあるかどうかを確認する方法
- 4. 要求を識別する方法asp.net mvcのWebプロキシから来ますか?
- 5. 要求がウイルス対策から来たかどうかを検出する
- 6. 要求は内線またはブラウザから来ているかどうかサーバーが検出できますか?
- 7. どのビューコントローラから別のビューコントローラに来ているか確認する方法
- 8. HttpHandlerで要求が正当であるかどうかを確認する
- 9. Python - ipがプロキシであるかどうかを確認してください
- 10. Rubyでプロキシが接続可能かどうかを確認するには?
- 11. 変数がどこから来ているかを確認する良い方法はありますか?
- 12. Javassist:オブジェクトがプロキシであるかどうか確認してください
- 13. HTTP要求がキープアライブであるかどうかを確認します。
- 14. リモートファイルがプロキシの背後にあるかどうかを確認する方法
- 15. ユーザーが「転送」ページから来ているかどうか確認してください
- 16. Java InputStreamがソケットから来ているかどうか確認してください
- 17. httpリクエストが私のアンドロイドアプリから来ているかどうか確認してください
- 18. PHP:リンクがexternから来ているかどうか確認してください
- 19. イベントが右のCtrlキーから来るかどうかを確認する方法はありますか?
- 20. 要求が来たときにwso2 api managerがアプリケーションのAPIに加入しているかどうかを確認する方法
- 21. swift Jsonから来るNULL値を確認するにはどうすればいいですか
- 22. Google Chromeを使用してメモリリークがどこから来るのかを確認
- 23. 要素にクリックハンドラがあるかどうかを確認するにはどうすればいいですか?
- 24. SpringのInterceptingClientHttpRequestがHTTPS要求を処理しているかどうかを確認する方法
- 25. 公開プロキシが匿名であるかどうかを確認する
- 26. MS Access Query:フォームが開いているかどうかを確認する/パラメータに入力が必要かどうかを確認する
- 27. 保証要求がローカルサーバーから来た
- 28. ウェブサイトのユーザーが同じネットワーク(イントラネットのWebサイト)から来ているかどうかを確認
- 29. 要素が存在するかどうかを確認する
- 30. TIdHTTP:要求を送信する前に有効なCookieがあるかどうかを確認しますか?