目次
キーテイクアウト
mod_rewriteメソッド:
ここでの大きな問題はスケーラビリティです。資産にアクセスできる必要がある1000のドメインがある場合はどうなりますか?ドメインのリストが頻繁に変更された場合はどうなりますか?
それらのiframesはどうですか?
アセットアクセス制限でユーザーエージェントブロッキングを使用するにはどうすればよいですか?
ホームページ バックエンド開発 PHPチュートリアル 資産アクセス制限方法 - 不要な訪問者をブロックします

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

Feb 20, 2025 am 10:23 AM

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 までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

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

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

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

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

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

See all articles