Web サイトの Web サーバー側でユーザー IP を本当に制限できるでしょうか?
先ほどnginxのアップストリーム転送と転送元IPの変更について質問させていただきましたが、アクセス要求元のIPは自由に変更できるため、Webサーバー上で取得するIPを完全に信頼できるわけではありません。ユーザーの実際の IP アドレスですか? それともこのパスは実際には不可能ですか?
返信内容:
先ほどnginxのアップストリーム転送と転送元IPの変更について質問させていただきましたが、アクセス要求元のIPは自由に変更できるため、Webサーバー上で取得するIPを完全に信頼できるわけではありません。ユーザーの実際の IP アドレスですか? それともこのパスは実際には不可能ですか?
nginx は [あなた] によって構築されましたか、それとも [禁止されたユーザー] によって構築されましたか?
HTTP_X_FORWARD_FOR は偽造できますが、REMOTE_ADDR は変更できません。
[禁止されたユーザー] によって構築された場合:
$_SERVER["REMOTE_ADDR"] を通じて nginx サーバーの IP を取得し、直接ブロックできます。
[あなたが] nginx を構築した場合:
ユーザーの IP は $_SERVER["HTTP_X_FORWARD_FOR"] を通じて取得できますが、偽造される可能性があります。
最善の方法は、nginx が転送するときにプライベート HTTP ヘッダーを追加することです。何を偽る必要があるのかわかりません。
リーリーさらに、アリババの WW で現在使用されているプロキシ プラットフォームの HL システムは、HTTP_X_FORWARD_FOR によって厳密にフィルタリングされていないため、慎重に構築されたリクエストが注入される可能性があります。 。 。 (現在は新しいバージョンが修正されています)
偽造に関しては、Linux/Unix/OSX を使用している場合は、組み込みのカールで行うことができます:
リーリーフィルタリングしない場合、IP を通じてブラックリストに登録するか、バックグラウンドで IP 操作ログを記録するかを直接決定する機能が存在します:
リーリー
nginx を構成するときに、proxy_set_header X-Forward-For $remote_addr 構成を追加できる計画を思いつきました。次に、$_SERVER["HTTP_X_FORWARD_FOR"] がユーザーの実際の IP を取得し、プログラム内で IP を制限します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます
