検索
ホームページバックエンド開発PHPチュートリアル資産アクセス制限方法 - 不要な訪問者をブロックします

Asset Access Restriction Methods - Block Unwanted Visitors

資産アクセス制限方法 - 不要な訪問者をブロックします

キーテイクアウト

  • 資産へのアクセス制御を実装することは、セキュリティにとって重要です。ホワイトリストは推奨されるアプローチであり、ゲートキーパーは信頼できるエンティティのみが資産にアクセスできるようにします。このゲートキーパーは、HTTPサーバーまたはアプリケーションコードに配置でき、HTTP_HOSTを確認するツールを提供できます。
  • HTTPサーバーは、リクエストごとにアプリケーションコードを起動する必要なく、アクセス制御を効率的に処理できます。サーバーに応じて、mod_rewriteやApacheの許可/拒否などのさまざまな方法、またはnginxのhttpreferermoduleを使用できます。ただし、このアプローチのスケーラビリティは、変更を管理または頻繁に変更するドメインが多い場合は課題になります。
  • アプリケーションコードレベルでのアクセス制御により、柔軟性が向上します。この方法では、リファラーがIFRAMEステータスに関する情報を提供しないIFRAMEの状況も処理できます。ただし、HTTPサーバーとアプリケーションコードの両方のメソッドは完全にはないため、OAUTHなどのトークンベースのゲートキーパーがセキュリティを強化するために推奨されます。
  • 素晴らしいWebアプリやWebサイトを構築するとき、Webアプリ/Webサイトの一部を独自に埋め込むことができるようにしたい場合があります。それは、「いいね」ボタンを保持しているiframeである可能性があります。彼らが再利用したいシンプルな画像、または私たちのアプリ全体がiframeに埋め込まれています。
しかし、誰がアクセスできるのか、誰が帯域幅を使い果たし、サービスを照会することを許可されているのかをどのように制御しますか?

問題を、アクセスを制御する

アクセス制限:いくつかを許可し、すべて

をブロックします アクセス制御について話すとき、セキュリティのドメインを入力します。そして、セキュリティを話すとき、ホワイトリストは問題に取り組むために取られたアプローチでなければなりません。誰があなたの資産にアクセスすることが許可されているかを制御する方が簡単です。インターネットのすべてのブギーモンスターを知ることは単に不可能です。 資産を保護するために、

、私たちはゲートキーパーを雇って信頼できるものだけを雇います。雇われたら、彼にコントロールするホワイトリストへのアクセスを与え、彼にすべての重い持ち上げをさせます。問題が解決しました。しかし、ゲートキーパーはどのように持ち上げる必要がありますか?

持ち上げ戦術

ゲートキーパーがどれだけ安全であるか、クライアントが求めたものに応じて、さまざまな戦術を使用できます。

使用される一般的なアプローチは、参照ヘッダーをチェックすることです。その方法には3つの大きな欠点があります:

  1. リンクを使用して人々があなたのウェブサイトにアクセスするときにも参照者は設定されます
  2. 参照者はクライアントによってサーバーに送信され、変更される可能性があります
  3. 参照者はまったく設定されていない場合があります
ただし、画像、JS、CSSなどの静的資産の場合、これらの欠点は問題ではありません。あなたの資産は、ユーザーが当社のウェブサイトに直接アクセスしている場合(または信頼できるサイトから)ロードする必要があります。一般的な考え方は、他の人をブロックすることです。したがって、参照者は常にホワイトリストに載っています。あなたが自分自身を信頼しない限り - しかし、あなたはより大きな問題を抱えています。

bro、あなたも持ち上げますか?

使用されるセットアップに応じて、クエリは一連の

ゲートを通過しました。簡単なセットアップは次のとおりです。クライアント - > httpサーバー - >アプリケーションコード

では、ゲートキーパーはどこに座っていますか?クライアントは、彼が信頼できない人間の作品であるため、事実上のアクセスコントロールを求めません。一方、HTTPサーバーとアプリケーションコードは便利なオプションです。どちらも、HTTP_HOSTをチェックするための強力なツールを提供します

httpサーバーは、持ち上げる方法を知っています

HTTPサーバーにアクセス制御を処理することの強度は速度です。リクエストごとにアプリケーションコードを起動する必要はありません。これにより、アプリケーションスタック/スレッド(MOD_PHPなど)をメモリにロードする必要がないため、パフォーマンスを大幅に向上させる可能性があります。

HTTPサーバーに応じて、さまざまなソリューションが利用可能です

apache

Apacheでは、2つの異なる方法があります。 mod_rewriteを使用するか、許可/拒否します。

mod_rewriteメソッド:

mod_rewriteは、ほとんどのホスティングプロバイダーによってサポートされています

# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]
許容/拒否法:

すべてのホストがそれらの設定をサポートしているわけではありません。

nginx
#specify the files to guard, block all the assets
<files>
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>
Nginxのhttpreferermoduleは本当にクールなvalid_referersを提供します。ヘッダーを送信せずに接続します…

httpサーバーは
とは思わない

ここでの大きな問題はスケーラビリティです。資産にアクセスできる必要がある1000のドメインがある場合はどうなりますか?ドメインのリストが頻繁に変更された場合はどうなりますか?

すべての編集ごとに、構成ファイルに飛び込む必要があります。手動で変更すればするほど、間違いが増える可能性があります。

アプリケーションコードは何をすべきかを知っています

アプリケーションコードレベルにアクセス制御を使用すると、柔軟性がはるかに高くなります。すぐに彼のゲートキーパーを稼働させることができます:
location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}

それらのiframesはどうですか?

前述のように、参照者に依存することは必ずしも良い考えではありません。それは私たちの信頼できない人間からのデータだけでなく、私たちがIFRAMEにいるかどうかについても手がかりを与えません。単に知る方法はありません。

しかし、ゲートキーパーを助けるためにヒットマンを雇うことができました。私たちのヒットマンは、疑わしいように見える人間に派遣されます(例えば、信頼されていない参照者がいる人)。ヒットマンは、JSを武器として使用します:

# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]

悲しいことに、信頼できないドメインから到着した人は、その信頼できないドメインのiframeを使用して私たちにアクセスする他の誰かと同じ参照を持っています。ただし、アセットでは、参照者がドメインに設定されます(IFRAMEの状況であっても)。ここにヒットマンを送信するのはやり過ぎです。アクセスを拒否するだけで十分です - または、ランダムな子猫の画像を送信することができます。 そのため、IFRAMEにいるかどうかをヒットマンチェックがあるのです。もしそうなら、私たちは彼に私たちのターゲットを殺させます:

私たちが知っておく必要がある唯一のことは、ゲートキーパーにヒットマンをクライアントに送信したペイロードに追加させることです。簡単!
#specify the files to guard, block all the assets
<files>
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>

location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}
このコードは生産証明ではありません。例として機能します。

実際のセキュリティはどうですか?

ここに提供されるソリューションは、ほとんどのブギーモンスターからあなたを守ります。しかし、両方の解決策はばかな証拠ではありません。 1つ目はクライアントからのデータを使用し、2つ目はクライアントが実行するJavaScriptです。

安全な方法は、トークンベースのゲートキーパーを使用することです。 Oauthはおそらくあなたがここで仕事に望んでいる人ですが、それはこの記事の範囲外です。 アセットアクセス制限方法に関するよくある質問(FAQ)

資産アクセス制限のさまざまな方法は何ですか?

資産アクセス制限方法は、デジタル資産への不正アクセスを防ぐために使用される戦略です。これらの方法には、特定のIPアドレスからのアクセスのブロックが含まれるIPブロッキングが含まれます。地理的位置に基づいてアクセスを制限するジオブロッキング。特定のブラウザやデバイスからのアクセスを防ぐユーザーエージェントブロッキング。その他の方法には、参照ウェブサイトに基づいてアクセスを制限するHTTPリファラーブロッキングと、ユーザーがアクセスを得るためにパスワードを入力する必要があるパスワード保護が含まれます。

IPブロッキングは、特定のIPアドレスがデジタル資産にアクセスするのを防ぐために使用される方法です。これは、サーバーの構成ファイルの「ブラックリスト」にIPアドレスを追加することによって行われます。これらのIPアドレスからのリクエストは拒否され、資産へのアクセスを効果的にブロックします。地理的位置に基づいてデジタル資産へのアクセスを制限します。これは、多くの場合、地域のライセンス契約に準拠したり、サイバー攻撃で知られている地域からのアクセスを防ぐために使用されます。ジオブロッキングは、IPアドレスに基づいてユーザーの場所を決定することで機能します。

アセットアクセス制限でユーザーエージェントブロッキングを使用するにはどうすればよいですか?

ユーザーエージェントブロッキングは、特定のブラウザまたはデバイスがデジタル資産にアクセスするのを防ぐために使用される方法です。これは、サーバーにリクエストを行うときにブラウザまたはデバイスによって送信されるユーザーエージェント文字列を識別することによって行われます。ユーザーエージェントの文字列がサーバーの「ブラックリスト」の1つと一致する場合、リクエストは拒否されます。参照Webサイトに基づいてアクセスを制限するために使用される方法。これは、リクエストが生じたWebサイトのURLを含むHTTPリファラーヘッダーをチェックすることによって行われます。リファラーがサーバーの「ブラックリスト」にある場合、リクエストは拒否されます。ユーザーにパスワードの入力を要求することにより、デジタル資産。これは、多くの場合、民間または敏感な資産に使用されます。サーバーは、資産にアクセスしようとするときにユーザーにパスワードを求めます。正しいパスワードを入力する人のみがアクセスが許可されます。 🎜>はい、複数のアセットアクセス制限方法を一緒に使用して、より高いレベルのセキュリティを提供できます。たとえば、IPブロッキングを使用して特定のIPアドレスからのアクセスを防ぎ、パスワード保護を使用して、認定ユーザーのみへのアクセスをさらに制限します。 >

ウェブサイトにアセットアクセス制限メソッドの実装には、通常、サーバーの構成ファイルの変更が含まれます。正確なプロセスは、使用しているサーバーソフトウェアと実装する特定の制限方法によって依存します。

アセットアクセス制限方法を使用する欠点はありますか?高レベルのセキュリティを提供することができ、合法的なユーザーをブロックする可能性もあります。たとえば、IPブロッキングは、VPNまたはプロキシを使用しているユーザーをブロックする可能性があり、Geoブロッキングは海外に旅行しているユーザーをブロックすることができます。したがって、これらの方法を実装する前に、ユーザーへの潜在的な影響を慎重に検討することが重要です。

資産アクセス制限方法の代替品は何ですか?ネットワーク(CDN)資産を配布したり、サーバーを保護してファイアウォールを使用したり、さまざまなセキュリティ機能を提供するセキュリティプラグインまたはサービスを使用したりします。これらの代替案は、資産アクセス制限方法の潜在的な欠点なしで、高レベルのセキュリティを提供できます。

以上が資産アクセス制限方法 - 不要な訪問者をブロックしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。