プロキシサーバー経由で着信要求が行われているかどうかを検出できますか? 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. 要求を識別する方法asp.net mvcのWebプロキシから来ますか?
- 2. 要求は内線またはブラウザから来ているかどうかサーバーが検出できますか?
- 3. HttpHandlerで要求が正当であるかどうかを確認する
- 4. Python - ipがプロキシであるかどうかを確認してください
- 5. Rubyでプロキシが接続可能かどうかを確認するには?
- 6. 変数がどこから来ているかを確認する良い方法はありますか?
- 7. Javassist:オブジェクトがプロキシであるかどうか確認してください
- 8. リモートファイルがプロキシの背後にあるかどうかを確認する方法
- 9. ユーザーが「転送」ページから来ているかどうか確認してください
- 10. httpリクエストが私のアンドロイドアプリから来ているかどうか確認してください
- 11. 保証要求がローカルサーバーから来た
- 12. Google Chromeを使用してメモリリークがどこから来るのかを確認
- 13. イベントが右のCtrlキーから来るかどうかを確認する方法はありますか?
- 14. 要素にクリックハンドラがあるかどうかを確認するにはどうすればいいですか?
- 15. 公開プロキシが匿名であるかどうかを確認する
- 16. TIdHTTP:要求を送信する前に有効なCookieがあるかどうかを確認しますか?
- 17. 要素が存在するかどうかを確認する
- 18. 要素が削除されているかどうかを確認するJQuery
- 19. 要素がフォームフィールドであるかどうかを確認する
- 20. Linuxでハードディスクに要求せずにファイルが存在するかどうかを確認できますか?
- 21. div内に要素が表示されているかどうかを確認
- 22. RunOnUiThreadが必要かどうか確認してください。
- 23. ソケットがPHPで開いているかどうかを確認するには?
- 24. プロキシがSocks v4またはv5を使用しているかどうかを確認するにはどうすればよいですか?
- 25. 従来のASP:クライアントにヘッダーが送信されているかどうか確認してください
- 26. 要素がclientHeightにあるかどうか確認してください
- 27. 要求がブラウザの戻るボタンから来ているかどうかをPHPが検出する方法はありますか?
- 28. C#WinFormが閉じられているかどうかを確認する
- 29. ポップアップページが開いているかどうかを確認するにはどうすればよいですか?
- 30. プロキシがRubyで動作しているかどうか確認しています