SQL インジェクションを防ぐには? (完全ガイド 2020) - MalCare

公開: 2023-04-19

Web サイトへの SQL インジェクション攻撃が心配ですか? これを読んでいる場合は、攻撃の結果をすでに知っているかもしれません。 この投稿では、SQL インジェクションを防ぐ簡単な方法を学びます

SQL インジェクションにより、ハッカーが WordPress サイトをハイジャックし、そのサイトのアクセス制御を可能にする可能性があります。 そこから、トラフィックをリダイレクトしたり、機密データを盗んだり、スパム リンクを挿入したり、日本語の文字で検索結果を操作したり、違法な製品の広告を表示したりできます。 この種の攻撃は、サイトやビジネスに取り返しのつかない損害を与える可能性があります。

幸いなことに、適切なセキュリティ対策を講じれば、SQL インジェクションを防ぐことができます。 このガイドでは、SQL インジェクションに対処し、それらを防ぎ、WordPress Web サイトを保護するための効果的な対策について詳しく説明します.

TL;DR:信頼できるセキュリティ プラグインを使用することで、WordPress サイトでの SQL インジェクションを防ぐことができます。 MalCare をインストールすると、プラグインが自動的にサイトをスキャンして、そのような攻撃から防御します。

[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”最終的な考え”]

SQL インジェクション攻撃とは?

通常、すべての WordPress サイトには、訪問者が情報を入力できる入力領域があります。 これは、サイト検索バー、お問い合わせフォーム、またはログイン フォームです。

連絡先フォームでは、訪問者は名前、電話番号、電子メールなどのデータを入力して、サイトに送信します。

お問い合わせフォームは、SQL インジェクション攻撃に対して脆弱です

このデータは、Web サイトの MySQL データベースに送信されます。 ここで処理され、保存されます。

現在、これらの入力フィールドには、データベースに入る前にデータが検証およびサニタイズされるように適切な構成が必要です。 たとえば、連絡先フォームの脆弱性は、文字と数字のみを受け入れる必要があることです。 シンボルを受け入れないことが理想的です。 サイトがこのフォームを介してデータを受け入れる場合、ハッカーはそれを利用して、次のような悪意のある SQL クエリを挿入できます。

 txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work? txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?

ハッカーは、セキュリティ対策が脆弱であるか、簡単に侵入できる脆弱性が存在する Web サイトをターゲットにしています。私たちの経験では、プラグインとテーマはしばしば脆弱性を開発し、ハッカーはこれを十分に認識しています。 彼らは、脆弱なプラグインやテーマを使用しているサイトを探して、インターネットを絶えずうろつきます。

これを説明するために、シナリオ例を使用します。 A さんがプラグイン「Contact Form」を使用して、Web サイトの Contact ページのフォームを強化しているとします。 バージョン 2.4 のこのプラグインで SQL インジェクションの脆弱性が発見され、開発者がそれを修正して、更新されたバージョン 2.4.1 をリリースしたとします。

リリース時に、開発者は更新の理由を明らかにし、セキュリティ上の欠陥を公開します。 これは、ハッカーが Contact Form プラグインのバージョン 2.4 に存在するセキュリティ上の欠陥を知っていることを意味します。

現在、Mr.X は更新プログラムを実行する時間がないため、更新プログラムのインストールを数週間遅らせています。 ここで問題が発生します。

ハッカーが脆弱性を発見すると、プログラムを実行するか、インターネットをクロールして特定のバージョンのプラグイン/テーマを使用している Web サイトを見つける脆弱性スキャナーを使用します。

この場合、Contact Form 2.4 を使用して Web サイトを探します。 彼らがサイトを見つけたら、正確な Web の脆弱性を知ることができるため、ハッキングがはるかに容易になります。 この場合、彼らは SQL インジェクションの欠陥を悪用してサイトに侵入します。

SQL インジェクションの種類

ハッカーは、次の 2 種類の SQL インジェクションを使用します。

1. 従来の SQL インジェクション –ウェブサイトにアクセスすると、ブラウザ (Chrome や Mozilla など) がウェブサイトのサーバーに HTTP リクエストを送信してコンテンツを表示します。 Web サーバーはサイトのデータベースからコンテンツを取得し、ブラウザに送り返します。 これが、Web サイトのフロント エンドを表示する方法です。

現在、Web サイトのデータベースには、顧客の詳細、支払い情報、ユーザー名とパスワードなどの機密データを含むあらゆる種類のデータが含まれています。 データベースは、フロントエンド データのみをリリースするように構成する必要があります。 他のすべての機密データは保護する必要があります。 しかし、これらのアプリケーション セキュリティ チェックが実施されていない場合、ハッカーが利用します。

クラシック SQL インジェクション攻撃では、ハッカーが悪意のあるリクエストをデータベースに送信し、データをブラウザに取得します。 ただし、クエリ文字列を使用して、Web サイトのログイン資格情報などの機密情報を要求します。この情報を保護していないと、ハッカーに送信されます。 このようにして、彼らはあなたのログイン情報を手に入れ、あなたのサイトに侵入することができます. 攻撃者は、同一または類似のデータベース ステートメントを高効率で繰り返し実行する方法として、準備済みステートメントを使用することもできます。

2. ブラインド SQL インジェクション –これでは、ハッカーが Web サイトの入力フィールドから悪意のあるスクリプトを挿入します。 データベースに保存されると、彼らはそれを実行して、サイトのコンテンツを変更したり、データベース全体を削除したりするなど、あらゆる種類の損害を与えます.この場合、彼らは悪意のあるスクリプトを使用して管理者権限を取得することもできます.

どちらのシナリオも、Web サイトとビジネスに壊滅的な影響を与える可能性があります。 幸いなことに、Web サイトで適切なセキュリティと入力検証対策を講じることで、このような攻撃を防ぐことができます。

SQL インジェクション攻撃を防止するための手順

SQL インジェクション攻撃を防ぐには、Web サイトのセキュリティ評価を実施する必要があります。 ここでは、SQL 攻撃を防ぐために実行できる 2 種類の対策を紹介します。簡単なものもあれば、複雑で技術的なものもあります。

簡単な予防策

  1. セキュリティプラグインをインストールする
  2. 信頼できるテーマとプラグインのみを使用してください
  3. サイト上の海賊版ソフトウェアを削除する
  4. 非アクティブなテーマとプラグインを削除する
  5. ウェブサイトを定期的に更新する

技術的な予防措置

  1. デフォルトのデータベース名を変更する
  2. コントロールフィールドの入力とデータ送信
  3. WordPress ウェブサイトを強化する

始めましょう。

SQL インジェクション攻撃に対する簡単な予防策

1. セキュリティ プラグインをインストールする

Web サイト セキュリティ プラグインを有効にすることは、Web サイトを保護するために必要な最初のステップです。 WordPress セキュリティ プラグインはサイトを監視し、ハッカーの侵入を防ぎます。

選択できるプラグインはたくさんありますが、提供するものに基づいて、MalCare を選択します。 プラグインは、Web アプリケーション ファイアウォールを自動的に設定して、サイトを攻撃から守ります。 ハッキングの試みは特定され、ブロックされます。

次に、プラグインのセキュリティ スキャナーがサイトを毎日徹底的にスキャンします。 サイトに疑わしい動作や悪意のあるアクティビティがある場合は、すぐに警告が表示されます。 Google があなたのサイトをブラックリストに載せたり、ホスティング プロバイダーがあなたのサイトを一時停止したりする前に、MalCare を使用して即座に行動を起こし、サイトを修正することができます。

2. ウェブサイトを定期的に更新する

前述の SQL インジェクションの例で述べたように、開発者はソフトウェアにセキュリティ上の欠陥を発見すると、それを修正し、セキュリティ パッチを含む新しいバージョンをリリースします。 サイトから欠陥を取り除くには、新しいバージョンに更新する必要があります。

ワードプレスのコアアップデート

WordPress コアのインストール、テーマ、およびプラグインを更新するために、週に 1 回時間を割くことをお勧めします。

ただし、セキュリティ更新プログラムがリリースされていることがわかった場合は、すぐに更新プログラムをインストールしてください。

3. 信頼できるテーマとプラグインのみを使用する

WordPress は Web サイトを構築するための最も人気のあるプラットフォームであり、その理由の 1 つは、WordPress を簡単かつ手頃な価格にするプラグインとテーマです。 ただし、利用可能なテーマとプラグインが豊富にあるため、慎重に選択する必要があります。 アクティブなインストール数、最終更新日、テスト済みのバージョンなど、プラグインの詳細を確認します。

プラグインの詳細

WordPress リポジトリからダウンロードすることをお勧めします。 その他のテーマやプラグインについては、適切な調査を行って信頼できることを確認する必要があります。 これは、一部のサードパーティのテーマとプラグインがハッカーによって悪意を持って作成される可能性があるためです. また、コーディングが不適切なため、脆弱性が発生する可能性もあります。

4. サイト上の海賊版ソフトウェアを削除する

海賊版または無効化されたテーマとプラグインは魅力的です。 無料でプレミアム機能にアクセスできます。 しかし残念なことに、これらには通常、マルウェアがプリロードされています。 海賊版ソフトウェアは、ハッカーがマルウェアを配布する簡単な方法です。

インストールすると、マルウェアがアクティブになり、サイトに感染します。 そのようなソフトウェアには近づかないことが最善です。

5. 非アクティブなテーマとプラグインを削除する

プラグインをインストールして、何年も完全に忘れてしまうことはよくあることです。 しかし、この習慣により、サイトがハッカーにさらされる可能性があります。 サイトにインストールするプラグインとテーマが多いほど、脆弱性が現れ、ハッカーがそれらを利用する可能性が高くなります.

使用するプラグインとテーマのみを保持することをお勧めします。 残りを削除して、サイトをより安全にします。 また、既存のテーマとプラグインを定期的にスキャンしてください。

技術的な予防措置

これらの対策には、WordPress の内部の仕組みについてもう少し知識が必要になる場合があります。 ただし、最近ではすべてのプラグインがあります。 したがって、これらの対策の実装に伴う複雑さについて心配する必要はありません。 私たちはそれを簡単にします!

1. デフォルトのデータベース テーブル名を変更する

WordPress サイトは、ファイルとデータベースで構成されています。 データベースには、デフォルトで 11 個のテーブルがあります。 各テーブルには、さまざまなデータと構成が格納されています。 これらのテーブルには、接頭辞「wp_」が付いた名前が付けられます。 したがって、テーブルの名前は wp_options、wp_users、wp_meta にすることができます。 あなたはドリフトを取得します。

SQLインジェクションを防ぐためにデフォルトのデータベーステーブル名を変更

これらの名前はすべての WordPress サイトで同じであり、ハッカーはこれを知っています。 ハッカーは、どのテーブルにどのようなデータが格納されているかを知っています。 ハッカーが悪意のあるスクリプトを Web サイトに挿入すると、そのスクリプトがどこに保存されるかがわかります。 簡単な方法を使用して、SQL コマンドを実行し、悪意のあるアクティビティを実行できます。

ただし、テーブルの名前を変更すると、ハッカーがスクリプトの場所を見つけられなくなる可能性があります。 そのため、ハッカーがデータベース テーブルに SQL コードを挿入しようとしても、テーブル名を特定できません。

これを行うには、Change Table Prefix や Brozzme などのプラグインを使用します。 それらのいずれかをサイトにインストールし、手順に従ってください。

wp-config ファイルを編集して手動で行うこともできます。 注意点 – ここで少しミスをすると、データベース エラーやサイトの誤動作が発生する可能性があります。 続行する前にバックアップを取ってください。

  • ホスティング アカウント > cPanel > ファイル マネージャーに移動します。
  • ここで、public_html フォルダーにアクセスし、wp-config ファイルを右クリックします。
  • [編集] を選択し、次のコードを見つけます
    「$table_prefix = 'wp_';」
  • それを–に置き換えます
    「$table_prefix = 'test_';」

任意のプレフィックスを選択できます。 ここでは、新しいデータベース名として「test_」を選択しました。 完了すると、ハッカーは SQL コマンドを見つけることができなくなります。

2. フィールド入力とデータ送信の管理

特定の種類のデータのみを受け入れるように、Web サイトのすべての入力フィールドを構成できます。 たとえば、名前フィールドに数字を入力する理由がないため、名前フィールドにはアルファベット (文字) のみを入力する必要があります。 同様に、連絡先番号フィールドは数字のみを受け入れる必要があります。

ユーザー入力をサニタイズするsanitize_text_field()関数を使用できます。 この入力検証により、正しくないエントリや単に危険なエントリをブロックできるようになります。

3. WordPress ウェブサイトを強化する

これは、WordPress サイトを SQL インジェクション攻撃から保護するための最も重要な手順の 1 つです。 ウェブサイトの強化とは何ですか?

WordPress Web サイトは、サイトの運営に役立つ多くの機能を提供します。 ただし、ほとんどの人はこれらの機能の多くを使用していません。 WordPress.org は、それらを使用しない場合は、それらの一部を無効にするか削除することを推奨しています。 これにより、ハッカーが試行する要素が少なくなるため、攻撃の可能性が減少します!

WordPress の強化策には次のようなものがあります。

  1. ファイルエディタを無効にする
  2. プラグインまたはテーマのインストールを無効にする
  3. 2 要素認証の実装
  4. ログイン試行の制限
  5. WordPress セキュリティ キーとソルトの変更
  6. 不明なフォルダーでの PHP 実行のブロック

これらの対策を実装するには、数回クリックするだけでこれを実行できる MalCare などのプラグインを使用できます。

マルケア強化

または、WordPress の強化に関するガイドに従って手動で実装することもできます。

これで、SQL インジェクション攻撃の防止は終わりです。 この SQL インジェクション チート シートで説明した対策を実装していれば、サイトは安全です。

[ss_click_to_tweet tweet=”SQLインジェクション攻撃は防げる! このガイドを使用して、WordPress サイトに適切なセキュリティ対策を実装してください。」 content="" style="デフォルト"]

最終的な考え

予防は本当に治療よりも優れています。 SQL インジェクション攻撃は、不必要なストレスと深刻な経済的負担を引き起こす可能性があります。

今日説明した対策のほとんどは、プラグインを使用して簡単に実装できます。 そのため、技術に詳しくなくても心配する必要はありません。 あなたはまだ自分を守ることができます!

これらの対策を実施するとともに、サイトで MalCare を有効にすることを強くお勧めします。 そのファイアウォールは、Web サイトを攻撃から積極的に防御します。 サイトを毎日スキャンして、サイト上のハッキングの試みやマルウェアをチェックします。

これは、サイトを監視して悪者を締め出す Web サイトのセキュリティ ガードと考えることができます。 サイトが保護されていることを知って安心できます。

MalCare セキュリティ プラグインでハッキング攻撃を防ぎましょう!