.Htaccess を使用して、Web サイトへの悪意のある IP 攻撃を防ぎ、指定されたドメイン名へのアクセスを禁止し、マシン クローラーを禁止し、ホットリンクを禁止します。

.Htaccess を使用して、Web サイトへの悪意のある IP 攻撃を防ぎ、指定されたドメイン名へのアクセスを禁止し、マシン クローラーを禁止し、ホットリンクを禁止します。

数日前、私のウェブサイトがいくつかの IP アドレスから大量の悪意のある標的型スキャンを受け、ブルートフォース検出によってウェブサイトの内部構成ファイルや情報を取得しようとしていることがわかりました。攻撃を軽減するために .Htaccess を使用し、次の構成を .Htaccess ファイルに追加しました。

 注文 許可、拒否
 180.97.106 から拒否します。
 すべてを許可する

.Htaccess は、Web サイトにとって非常に強力な構成ファイルです。機能を理解すればするほど、Web サイトの構成を制御しやすくなります。 .Htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止することは、その基本的な機能の 1 つです。上記の構成は使用方法の 1 つにすぎません。以下では、この関連トピックでさらに多くの使用方法をまとめます。

指定されたIPへのアクセスをブロックする

 注文 許可、拒否
 192.168.44.201 からの拒否
 224.39.163.12 からの拒否
 172.16.7.92 からの拒否
 すべてを許可する

上記のコードは、3 つの異なる IP アドレスからの Web サイトへのアクセスをブロックする方法を示しています。

指定されたIPセグメントへのアクセスをブロックする

禁止する IP が多数あり、1 つずつ指定するのが面倒な場合は、IP 範囲を一度に禁止する方法は次のとおりです。

 注文 許可、拒否
 192.168 から拒否します。
 10.0.0 から拒否します。
 すべてを許可する

指定されたドメイン名へのアクセスをブロックする

 注文 許可、拒否
 some-evil-isp.com からの拒否
 subdomain.another-evil-isp.com からの拒否
 すべてを許可する

上記のコードは、特定の ISP からの Web サイトへのアクセスをブロックできます。

.Htaccess を使用してボットやスパイダーをブロックする

中国では、Google と Baidu だけが必要な検索エンジンだと思います。Sogou、360 などの他の小規模な検索エンジンは無視できます。そうしないと、これらの重要でない検索エンジンのクローラーは、何のメリットももたらさないだけでなく、Web サイトを破壊してしまいます。無効にする方法は次のとおりです。

 #悪いボットを排除する
 RewriteEngineオン
 書き換え条件 %{HTTP_USER_AGENT} ^BadBot
 書き換えルール ^(.*)$ http://go.away/

上記は 1 種類のクローラーを禁止するものです。複数のクローラーを禁止したい場合は、.Htaccess で次のように設定します。

 #悪質なボットを排除する
 RewriteEngineオン
 RewriteCond %{HTTP_USER_AGENT} ^BadBot [または]
 RewriteCond %{HTTP_USER_AGENT} ^EvilScraper [または]
 書き換え条件 %{HTTP_USER_AGENT} ^FakeUser
 書き換えルール ^(.*)$ http://go.away/

このコードは、3 つの異なるクローラーを同時にブロックします。「[OR]」に注意してください。

.Htaccess を使用してホットリンクを無効にする

あなたのウェブサイトが非常に人気があるなら、あなたのウェブサイト上の写真や動画、その他のリソースを気に入っている人が必ずいるでしょう。中には、職業倫理に反して自分のページにそれらを直接埋め込み、帯域幅を占有したり無駄にしたりして、サーバーの安定性に影響を与える人もいます。このようなホットリンク行為については、次に示すように、.Htaccess を使用して盗難を簡単にブロックできます。

 RewriteEngineオン
 書き換え条件 %{HTTP_REFERER} ^http://.*somebadforum\.com [NC]
 書き換えルール .* - [F]

上記のコードを .Htaccess に追加すると、somebadforum.com があなたのウェブサイトのリソースにホットリンクしたときに、サーバーは 403 Forbidden エラーを返すようになり、帯域幅が失われなくなります。

複数のサイトをブロックする方法は次のとおりです。

 RewriteEngineオン
 書き換え条件 %{HTTP_REFERER} ^http://.*somebadforum\.com [NC、OR]
 書き換え条件 %{HTTP_REFERER} ^http://.*example\.com [NC、OR]
 書き換え条件 %{HTTP_REFERER} ^http://.*lastexample\.com [NC]
 書き換えルール .* - [F]

ご覧のとおり、.htaccess は非常に強力な Web サーバー構成ツールです。これを使用すると、Web サーバーを自由に制御できます。ソリューションは通常、非常にシンプルで洗練されており、基本的にサーバーの再起動は必要なく、すぐに有効になります。

サーバー上にこの構成ファイルがない場合は、今すぐ作成してください。

.Htaccess ファイルを使用してウェブサイトへの悪意のある IP 攻撃をブロックする方法の詳細については、以下の関連リンクをクリックしてください。

以下もご興味があるかもしれません:
  • .htaccess を使用して画像のホットリンク保護を設定する詳細な方法
  • Apache で .htaccess を使用して https アクセスを強制する方法
  • Apache 2 で .htaccess をサポートし、ディレクトリ暗号化を実装する方法
  • APACHE は、.htaccess 疑似サイレント書き換えエラー「入力ファイルが指定されていません」の解決方法をサポートしています。
  • Apache は .htaccess を使用して悪意のあるユーザーエージェントをブロックします (スパイダー対策)
  • PHP の .htaccess 疑似静的ファイル
  • ウェブサイトがファイルディレクトリリストを表示しないようにする 2 つの方法 (htaccess)
  • .htaccess 書き換えルールの詳細な説明
  • Apache サーバーにおける .htaccess ファイルの実用的な設定例のコレクション
  • Nginx サーバーで .htaccess をサポートする方法
  • Apache サーバーにおける .htaccess の基本設定の概要
  • .htaccess を使用して Apache サーバーで疑似静的 URL を実装する方法
  • UbuntuでApacheの.htaccessサポートを有効にする
  • Wampserver ローカル PHP サーバーの Apache2.4.x バージョンで外部ネットワーク アクセスを許可し、.htaccess を有効にする方法
  • nginxを使用して.htaccessファイルをサポートし、疑似静的を実現する方法
  • Apache は .htaccess ファイルを使用して、wget による Web サイト コンテンツのダウンロードをブロックします。
  • Apache .htaccess ファイルの設定に関する 21 の一般的なヒント
  • CI フレームワークで .htaccess を使用して URL 内の index.php を隠す方法を説明します。

<<:  pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

>>:  JavaScript を使用して二分探索木を実装する方法

推薦する

CentOS7でPHPスケジュールタスクを実行する方法

序文この記事は主に CentOS7 で PHP スケジュールタスクを実行することに関する関連コンテン...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

CSSカスタムプロパティの予備的な理解

現在、CSS プリプロセッサは Web 開発の標準となっています。 プリプロセッサの主な利点の 1 ...

CentOS 7のインストールと設定方法のグラフィックチュートリアル

この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...

JavaScript の組み込み Date オブジェクトの詳細な説明

目次日付オブジェクト日付オブジェクトの作成新しい日付()日付を取得する()取得日()月を取得する()...

MySQLデータベースとテーブルシャーディングの概要

プロジェクトの開発中に、データベースのデータがどんどん大きくなり、その結果、1 つのテーブルにデータ...

MySQL 5.7.25 圧縮版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.25圧縮版のインストールと設定方法を参考までに紹介します。具体的な...

Vue+ElementUI で超大規模なフォーム例を処理する方法

最近、社内の業務調整により、以前の超長文のロジックが大幅に変更されたため、リファクタリングする予定で...

mysql8.0.11データディレクトリ移行の実装

mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...

CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します

Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

Vue ルーター vue-router 詳細説明ガイド

中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...

MySQL クエリ データベース容量方法手順

すべてのデータベースの合計サイズを照会する方法は次のとおりです。 mysql> informa...

Dockerコンテナのいくつかの保存方法の詳細な説明

目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...

MySQL でタイムゾーンを表示および変更する方法

今日、プログラムが間違った時刻を挿入し、フィールドがデフォルト値 CURRENT_TIMESTAMP...