## WordPressのセキュリティ的な特徴 - 別に普通に固い - 脆くなるのは利用者が原因がほとんど - 安直なユーザ名・パスワード - 複数プラグインインストールによる穴の拡大 - サーバにインストールするのは利用者自身 - サーバの設定ミス - 他のSaas系CMSと比べ、一部WordPress自体がゆるいところもある - ログイン試行無制限 - 二要素認証なし - でも、これって他の『自分で作るアプリケーション』では当たり前 - 自分で強固にしていく必要がある - WordPressの作り上、『サーバに入られたら終わり』 - wp-config.phpにDB接続情報 - wp_optionsテーブルに設定情報 - サーバからDBにアクセス可能 ## WordPress自体について - まずはユーザ名とパスワードを推測されにくいものにしよう - ユーザ名は `/?author=1` とかでばれる可能性がある - パスワードはユーザ名から判断できるときがある (例:admin -> admin1234) - パスワードはサイト(企業)情報からばれる時がある (例:wpzoomup -> wpz00mup!) - 強固なパスワードを使うように説得しよう - 1password, Chrome, iCloudなどあるよ - 脆弱なパスワードを使いたいと言っても拒否を試みよう - 洩れたらこちらのせいになるぞ! - 可能な限りの対策を入れよう - `/wp-admin` の隠蔽 (siteguard wp pluginなど) - 二要素認証 (jetpackなど) - IP制限 (サーバ設定など) - 静的化 (Shifterなど) ## サーバ自体について - 再度、WordPressはサーバにアクセスができるようになった時点で終了 - レンタルサーバが多い - そのサーバからDBにアクセスできる - wp-config.phpに全部書いてある - プラグインなどに保存した重要な情報がwp_optionsテーブルに入ってる - まずはユーザ名とパスワードを推測されにくいものにしよう - ユーザ名とパスワードがWordPressと同じだと死ぬ - SFTP, SSHのアクセスを強固にしよう - SFTP, SSH使ってないなら塞ぐ - SSHは公開鍵認証を使う(xserverはデフォ) - FTPは塞げ - 静的化 - 意外と忘れがちですが、PHPのバージョンに気を配りましょう - 今、PHP8.0未満はEOL(セキュリティ対応を含めたサポート終了) - 8.0も2023/11/26で死にます - PHPerから見れば、今から始めるならPHPは8.2が必須! - が、現在WordPressは8.0以降はbeta support。。 - PHP 8.2からDynamic Propertyが廃止されたので、修正箇所が多いと思われる - https://php.watch/versions/8.2/dynamic-properties-deprecated - なので、プラグインが非対応の可能性もある ## その他 - WordPressは常に最新に保つようにしましょう - プラグインやテーマも常に最新に保つようにしましょう - プラグインやテーマは必要最低限インストールしましょう - 使わなくなったプラグインやテーマは即**削除**しましょう - 削除すると、DB内のデータも消えます(ものによる) - (可能なら)サーバのOSやPHP、Apache, nginx, MySQLのバージョンも最新に保つようにしましょう - IPAのサイトやSNSで定期的に脆弱性に気づきましょう