WordPress ベスト プラクティスの究極の PHP セキュリティ チェックリスト

公開: 2017-11-03

ミルサド / Stock.adobe.com

Web サイトのセキュリティ プロセスでは、ファイル レベルでサイトを保護するだけでなく、サーバー レベルで WordPress サイトを保護する方法も検討される可能性があります。 しかし、プログラミング言語を保護する必要があるでしょうか? 従う必要のある PHP セキュリティのベスト プラクティスはありますか? PHP をセキュリティで保護する必要がありますか?

はい、はい、そしてそうです。

WordPress Web サイトを運営していても、PHP コードを安全に保つことに重点を置いていない場合、重大なインシデントが発生する可能性があります。

Oh No Omg GIF by Friends

PHP を使用して WordPress Web サイトを開発することには、たくさんのメリットがあります。

  • 初心者にとっては十分に使いやすく、プログラミングのプロにとっては十分な柔軟性があります。
  • すべてのプラットフォーム (Linux、Windows など) でうまく機能します。
  • WordPress とも非常に相性が良いです。
  • サイトの速度を向上させることができます。

とはいえ、PHP にも欠陥がないわけではありません。 PHP でプログラムされたアプリケーションは、次のような危険にさらされる可能性があります。

  • SQLインジェクション
  • クロスサイトスクリプティング
  • ログイン資格情報の漏洩
  • セッションハイジャック
  • なりすましフォーム
  • その他の厄介なセキュリティ リスク

関連: WordPress サイトの PHP バージョンを確認する方法 (およびアップグレードの互換性)

明らかに、これは、PHP を使用して WordPress Web サイトをプログラミングしたいという願望を諦めさせることを意図したものではありません。 これは信頼性が高く柔軟な言語であり、適切に保護されていれば、プロセスの合理化にも役立つ非常に強力なツールになります。

次の PHP セキュリティ チェックリストでは、プログラミング言語と PHP で構築されたアプリケーションを今後も安全に保つために知っておく必要がある PHP セキュリティのベスト プラクティスをすべて説明します。

WP Buffs のチームは、Web サイト所有者、代理店パートナー、フリーランサー パートナーが PHP セキュリティのベスト プラクティスに従うのを支援します。 1 つの Web サイトの管理が当社に必要な場合でも、1,000 のクライアント サイトのサポートが必要な場合でも、当社がお手伝いいたします。

WordPress のための究極の PHP セキュリティ チェックリスト

WordPress ウェブサイトをハッカーから安全に保ちたいですか? 次に、それを構築するために使用するすべてのツール (プログラミング言語を含む) がセキュリティのベスト プラクティスに準拠していることを確認するのはあなた次第です。 特に PHP に関連する場合は、次の点に細心の注意を払う必要があります。

  • PHP コーディングのベスト プラクティス
  • サイトのバックエンドへのアクセス制限
  • ユーザーアカウントの管理と監視
  • データの検証、サニタイズ、およびエスケープ
  • ユーザー送信データとアップロードの監視
  • Web ホストの信頼性

上記の PHP セキュリティ チェックポイントと WordPress 開発での使用方法についてさらに詳しく知りたい場合は、究極の PHP セキュリティ チェックリストを読み続けてください。

PHP のベスト プラクティス

  • PHP7 を使用する: 常に最新バージョンの PHP を使用します。 ライブラリや、それと一緒に使用するサードパーティ製アプリケーションにも同じことが当てはまります。
  • Hide Version : 使用している PHP の現在のバージョンでは、サイトを放置したままにしている脆弱性の種類がハッカーに知られる可能性があるため、ヘッダーで Expose_php を使用してこの設定をオフにします。
  • phpinfo の名前を変更する: インストールに関する追加情報も非表示にする必要があるため、必ず phpinfo.php ファイル名を変更してください。
  • エラー コードの変更: サイトへの接続が失敗したときにユーザーに表示されるデフォルトのエラー メッセージを変更します。 これにより、あなたの IP やファイル パスに関する情報が他人に見られることがなくなります。 代わりに、それらのエラーを自分側でログに記録してください。
  • システムコマンドを制限する: PHP ではシェル関数を使用すべきではないというのが一般的な意見です。 ただし、必要な場合は、ユーザー データを含めないでください。

バックエンドを保護する

  • SFTP を使用する: バックエンドでファイルを転送するときは、常に SFTP を使用します。
  • ディレクトリへのアクセスを制限する: PHP アプリケーションのデフォルトのディレクトリ名を変更します。
  • セッション パスを構成する: サイトで共有ホスティングを使用している場合、サーバー上の他のユーザーがセッション データを参照できる可能性があります。 新しいセッション パスをルート ディレクトリの下に保存することで、これを停止できます。
  • 個別の管理者を作成する: 単一サーバー上で複数の PHP ベースの Web サイトを実行している場合は、それぞれに完全に異なるログイン資格情報を持つ個別の管理者を使用するようにしてください。 これにより、サイト間の感染が防止されます。
  • ディレクトリを読み取り専用にする: Web アクセス可能なディレクトリを読み取り専用に設定して保護します。
  • 機密ファイルをディレクトリの外に保存する: 機密アプリケーション ファイル (構成ファイルなど) は、Web アクセスできないディレクトリに配置する必要があります。 その後、PHP スクリプトを使用してそれらをルーティングできます。

ユーザー情報の安全性を確保

  • すべてのパスワードを暗号化する: これは明白ですが、自分のパスワードだけでなくログインしているすべてのユーザーに対して全面的に適用するようにしてください。
  • 安全なセッション: 複雑なセッション ID を作成することで、セッションのハイジャックを防ぎます。 各 URL に特別なトークンを追加することもできます。
  • 古いセッションを破棄する: 誰かがログアウトした場合、またはアクセス権が変更された場合は、常にセッションから Cookie を削除し、新しいセッション ID を強制します。
  • 新しいユーザーの検証: 常に新しいユーザーの身元を確認し、それに応じてアクセス権限を付与します。 これは、制限されたページにアクセスしようとしている場合に特に重要です。
  • スロットルを使用する: ログインの失敗が多すぎる場合は、パスワード スロットルを使用してブロックする必要があります。

ユーザーからの入力と出力を検証する

  • 入力の検証とサニタイズ: 既知または未知のユーザーによってサイト経由で送信されたデータ、ファイル、URL、埋め込みコンテンツ、CSS、または HTML はすべて、レビューしてサニタイズする必要があります。 これは、受信を予期したデータ (例: ユーザー名にはユーザー名、電子メール アドレスには電子メール アドレスなど) のみを許可する必要があることを意味します。「FROM」や「WHERE」などの「不適切な」単語や一重引用符のような句読点は使用しないでください。これらは、誰かがあなたのサイトに悪意のあるコードを忍び込ませようとしている兆候である可能性があるため、レーダーに注目してください。
  • 出力のエスケープ: ユーザー データやファイルをサイトに公開する前に、潜在的に危険な文字やコード (一重引用符や <script> など) が通過しないように、それらもエスケープされていることを確認してください。
  • POST データを制限する: ハッカーが圧倒的な量のデータでサイトを攻撃したい場合、送信できる POST データの量に制限を設定することで攻撃を防ぐことができます。 入力時間を制限することもできます。
  • Register_Globals を無効にする: サイトのフォームにどのような種類の情報を送信できるかについては、決して自由にすべきではありません。 残念ながら、Register_globals はハッカーにその機会を与えてしまいます。
  • Magic_Quotes を無効にする: M​​agic_quotes 自体はサイトに悪影響を及ぼしませんが、出力データをエスケープするためにそれを使用する人が意図せずに脆弱性を引き起こす可能性があります。

アップロードの監視

  • ファイルのアップロードを無効にする: これは常に可能であるとは限りません。 ただし、ユーザーからファイルやデータを受け取る必要がない場合は、この機能を削除してください。
  • アップロードされたファイルを検証する: ユーザーがサイトにファイルをアップロードできるようにする必要がある場合は、ファイルのコンテンツに有害なインジェクションがないか分析する必要があります。 ショートカットとして、ファイルを別の形式で再保存できます。 まだ有効であれば、問題がある可能性は低くなります。
  • ウイルス スキャナを使用する: サイトで大量のファイルのアップロードを受け入れる場合は、ウイルス スキャナをインストールする必要があります。

安全なウェブホスティングを使用する

  • 信頼できるホストを使用する: Web サイト、ファイル、ログイン領域、プログラミング言語の保護にどれだけの労力を費やしても、セキュリティはホスティング レベルから始める必要があります。 そのため、セキュリティを優先し、特に PHP7 のサポートを提供する信頼できる Web ホストと提携する必要があります。
  • CDN を取得する:サーバー レベルでセキュリティの脅威を軽減するもう 1 つの方法は、コンテンツ配信ネットワーク (CDN) を取得することです。 これらは多くの場合、世界中を駆け回る Web サイトのパフォーマンスの向上に最も関連していますが、CDN は追加の保護層も提供します。
  • SSL 証明書を取得する:これは、PHP でプログラミングするかどうかに関係なく、ベスト プラクティスです。 SSL 証明書は、サーバーと訪問者のブラウザーの間に追加の暗号化層を追加します。

上記の各点は確かに有効ですが、依存する Web ホスティングの品質が最終的にサイトのセキュリティ戦略を左右する可能性があるため、この点は強調する価値があります。

良い点と悪い点を見分けるのは難しい場合が多いため、特に PHP7 サポートなどの特殊なものを探している場合は、WP Engine や Kinsta などのウェブホストから始めることをお勧めします。

関連: WP Engine と Kinsta を介したフルマネージド WordPress ホスティング

WP Engine はマネージド WordPress ホスティング プロバイダーであり、各ホスティング プランに PHP7 サポートが含まれています。 さらに、WP Engine は定期的にブログで PHP7 のテーマを扱い、PHP 互換性チェッカー プラグインに対する特別な宣伝を行っています。 この会社が PHP7 ユーザーサポートに専念していると言っても過言ではありません。

もう 1 つのマネージド WordPress ホスティング会社である Kinsta は、すべてのクライアント Web サイトを PHP7 でホストしています。 これは、全体的に高いパフォーマンスと速度を確保するためです。 KinstaはユーザーにPHPエンジンを最新のPHPバージョンにアップデートする機能も提供します。

そしてもちろん、WP Buffs のフルマネージド WordPress ホスティングも検討する必要があります。 WP Buffs は、サーバーと PHP のバージョンを最新かつ最高の状態に保つことで常に時代の先を行くため、これらのアップグレードの管理を自分で心配する必要はありません (これは WordPress 管理をアウトソーシングする楽しみの 1 つです)他の人にね?)

まとめ

WordPress Web サイトを構築するときは、セキュリティが常に最大の関心事です。 そのため、セキュリティのベスト プラクティスの中でも特に、信頼できるプラグインとテーマを使用し、コアを常に最新の状態に保つ必要があります。 PHP も例外ではありません。 他の WordPress ツールと同じように扱います。ツールを常に最新の状態に保ち、セキュリティのベストプラクティスを常に遵守してください。そうすれば、あなた (そしてあなたの Web サイト) は夜にぐっすり眠ることができます。

フィードバックを送信したり、会話に参加したりしませんか?Twitter にコメントを追加してください。

保存保存