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

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

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-20 10:23:10
オリジナル
975 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート