---
# System prepended metadata

title: 'WPZoomUP #87 で何を話すか'
tags: [WPZoomUP]

---

## 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で定期的に脆弱性に気づきましょう