こたかのつぶやき

こんにちは、こたかです。
一日一記事を始めてから、ワードプレスについて研究中です。
まずは発信が大切なので、多少サイトに問題が発生しても、公開してしまおう!とすすめています。
セキュリティーに不備があると、すぐにアタックを受けてしまいます。
最低限のセキュリティーでスタートしてみました。
リバースプロキシで公開URLを限定する
WordPressの構造をみて、最初に感じた課題は、セキュリティー対策についてです。
WordPressのシステムファイルがすべてApacheのDocumentRoot配下に配置する構造になっていました。
この構造では、「.htaccess」に設定ミスがあると公開するつもりのない機能(PHPファイル)を実行できてしまいます。
次にWordPressはオープンソースです。ソースコードを誰でも確認できるので、脆弱性があると詳細を確認できます。
WordPressには標準のセキュリティーとして「All In One WP Security and Firewall」があります。
もし「All In One WP Security and Firewall」に脆弱性があったら、ゼロデイアタックされてしまうのではないかと。
そこで、許可されたURLにだけアクセスできるように制限し、管理画面は承認されたデバイスからのみアクセスできるようにします。
「リバースプロキシ」という機能で実現できます。
リバースプロキシでセキュリティー対策
こたかのサイトでは、「リバースプロキシ」機能をPHPで作成したため、PHPのホスティングサービスが動けば使用できます。
Apacheと同じことをPHPで行っています。独自に仮想のDocumentRootを設定できます。
「.htaccess」が子ディレクトリに含まれている場合、子ディレクトリ毎にアクセス制御ができますが、こたかのサイトでは個別に設定はできません。
代わりにLaravelのようにURLのRouteで判断するようにしています。
WordPressは「index.php」でURLを処理しているようなので、「index.php」に渡すことができるURLを制限します。
この仕組みではWordPressやプラグインに機能追加がされてたり、新機能のURLが追加されてしまうと、アクセスは拒否されてしまいます。
使用したい場合は接続設定の手間が発生しますが、脆弱性を放置せずにすみます。
また「このURLの配下はブログ用」などに決めることで、設定変更しなくても対応できます。
管理者ページには、デバイス認証でガードするようにしました。
これもリバースプロキシ側で行うので、認証されていないデバイスからはWordPressの状態にかかわらず参照できません。
一歩ずつ進めてみる
記事の入力方法や、機能についてまだまだよくわからないですが、ひとつづつ確認して進めるのみです。
ではまた。次の記事でお会いしましょう。