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

推薦する

CentOS 7.x dockerはoverlay2ストレージ方式を使用する

/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...

Dockerディスク容量不足の問題を解決する

Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...

VMware ESXi 6.0 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...

el-select のスタイルを変更する方法の詳細な説明: popper-append-to-body と popper-class

elementUI が提供する el-select コンポーネントのスタイルを変更する方法この問題...

HTML 挿入画像の例 (HTML 追加画像)

HTML に画像を挿入するには、画像を表示するための HTML タグが必要です。これは、img タ...

ウォーターフォールフローレイアウトを実装する3つの方法

序文今日、Xianyuを閲覧していたとき、各行の高さが同じではないことに気付きました。調べてみると、...

Velocity.js はページスクロール切り替え効果を実装します

今日は、複数ページのスクロール切り替え効果を備えた Web サイトを簡単かつ効率的に開発できる、小さ...

Vueタブとキャッシュページを切り替えるいくつかの方法

目次1. 切り替え方法2. タブを動的に生成する3. キャッシュコンポーネント3.1 キープアライブ...

MySQL で不明なフィールド名を回避する方法

序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...

js 正規表現の先読みと後読み、および非キャプチャグループ化

目次先読みと後読みをキャプチャグループと組み合わせる捕獲グループと非捕獲グループ前を向いて、後ろを振...

Mybatis+mysqlはストアドプロシージャを使用してシリアル番号実装コードを生成します。

同時操作によるデータの重複を避けるために、データベースを操作するときにストアドプロシージャを使用して...

Vueはダイアログのカプセル化を実装します

目次Vue2 ライティングVue3プラグインのバージョンの記述Vue3 動的コンポーネントの記述書き...

2 つの Linux サーバー間の自動ファイル同期

サーバーB(172.17.166.11)の電源がオンまたは再起動されると、サーバーA(172.17....

Ubuntu20のtzselect設定時間失敗問題、Raspberry Piサーバ(推奨)

2 日前、Raspberry Pi サーバーを Ubuntu 20 にアップグレードしました。今日...

MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)

目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...