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

推薦する

Windows に MySQL 8.0.16 をインストールする手順とエラーの解決方法

1. はじめに: mysql8以降は、これまでよく使われていたバージョンと比べてかなり変更点が大きい...

Layuiテーブルは指定された行のラジオボタンを選択し、その行の実装コードまでスクロールします。

layui テーブルには複数行のデータがあります。外部入力コンテンツを通じて、指定された行を見つけ...

Vue3 の使用 (パート 1) Vue CLI プロジェクトの作成

目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

ローカル フォルダー内の画像を読み込んで表示するための HTML サンプル コード

一つの目的Html ページでローカル フォルダーを選択すると、フォルダーとそのサブフォルダー内のすべ...

MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視の概要

クエリキャッシュ1. クエリキャッシュの動作原理クエリ ステートメントを実行する前に、MySQL は...

vsftpdで仮想ユーザーログインを設定する方法

yum で vsftpd をインストールします [root@localhost など]# yum -...

実行中の Docker コンテナにボリュームを動的に追加する方法

以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...

HTML テーブルタグチュートリアル (26): セルタグ

<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...

フロートをクリアするための CSS メソッドの概要

フロートはWebページのレイアウトでよく使用されますが、フローティングブロックレベル要素は標準のドキ...

hrefパラメータ転送における中国語の文字化けについて

パラメータを渡すために href が必要で、パラメータが中国語の場合、文字化けした文字が表示されます...

jQueryはシャトルボックス機能を実現する

この記事では、シャトルボックス機能を実現するためのjQueryの具体的なコードを参考までに紹介します...

イベントバブリング、イベントキャプチャ、イベント委任に基づく詳細な説明

イベントバブリング、イベントキャプチャ、イベント委任JavaScript では、イベント委譲は非常に...

Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...