.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 を使用して二分探索木を実装する方法

推薦する

MySQL スロークエリを通じて MySQL のパフォーマンスを最適化する方法

アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...

背景画像の配置におけるbackground-position属性の自己理解

最近、プロジェクトではラベルやボタンなどの断片的な画像をたくさん使用する必要があります。また、CSS...

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

最新の高品質な英語無料フォント36個を公開

01. 無限フォントのダウンロード02. バンダフォントのダウンロード03. ロールアップフォントの...

HTML 初心者のためのベストプラクティス 15 選

HTML 初心者向けのベストプラクティスを 30 個紹介します。 1. タグを閉じたままにする過去に...

Nginx の書き換え正規マッチング書き換え方法の例

Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

MySQL innodb B+ツリーの高さを取得する方法

序文MySQL の InnoDB エンジンがインデックスの保存に B+tree を使用する理由は、デ...

ZabbixはPSK共有キーを使用してサーバーとエージェント間の通信を暗号化します。

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbi...

Win10の明るさ調整効果を模倣するHTML+CSS+JSサンプルコード

HTML+CSS+JS で Win10 の明るさ調整効果を模倣コード <!doctypehtm...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

MySQL データベースの文字化け問題の原因と解決策

序文データベースのデータを表示すると、文字化けした文字が表示されることがあります。実際、どのようなデ...

Dockerイメージをプルしてバージョンを確認する方法

イメージのバージョンとタグを確認するには、docker hubで確認する必要があります。アドレスは次...

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

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

Windows 10 の Docker で countly-server を展開して実行するプロセス

私は最近countlyに触れて、慣れてきました。私は、必要に応じてcountlyのクラッシュプラグイ...