/htaccessはWordPressのどこ?推奨設定は?2018.08.01htaccessはWordPressのどこ?推奨設定は?.htaccessは、WordPressのどこにあるのでしょうか。どこに設置すればよいでしょうか。設置場所と、推奨のセキュリティ設定についてまとめました。「.htaccess」はWordPressのどこにあるか「.htaccess」はWordPressのどこにあるかについて説明します。「.htaccess」は、WordPressのインストール媒体には含まれていません。自分で作成する必要があります。「.htaccess」はWordPressのどこに置くか「.htaccess」はWordPressのどこに置くかについて説明します。WordPressが1番上の階層にある場合ホームページを設置する場所は、「公開パス」と呼ばれるもので指定されています。以下の画像を例に挙げますと、「/var/www/ホームページ設置場所/」という公開パスが、ホームページを設置する場所として指定されています。この場所を基準に、「.htaccess」をどこに置くか説明していきます。WordPressのインストール媒体が、1番上の階層に置かれている場合は、同じように、1番上の階層に「.htaccess」を置きます。「.htaccess」にWordPress関連の設定を記述する場合、「.htaccess」を置く場所は2カ所あります。1つは、WordPressを実行する設定が書いてある「.htaccess」です。こちらは、WordPressのインストール媒体を設置した場所と同じ階層に置きます。1つは、WordPressのインストール媒体の直下に置きます。「.htaccess」は、ApacheというWebサーバーの設定ファイルになります。Webサーバーは、ホームページを表示するためのソフトウェアです。WordPressとはなにか、どんなファイルがあるかそもそも、WordPressとはどのようなもので、どんなファイルがあるのでしょうか。「.htaccess」の設定について理解を深めるため、WordPressについても触れておきます。WordPressはCMSツールです。CMSには投稿機能があり、ログインすると、ダッシュボードへアクセスします。ダッシュボードから簡単にホームページを編集できるのが、CMSというツールです。プログラムはPHPで書かれていて、MySQLというデータベースに情報が保存されます。WordPressにはホームページのページを表示するためのファイルとログインページ、ダッシュボードを表示するためのファイルがあります。データベースの接続先などを記述した設定ファイル、ウェブからのAPI実行するためのファイルなどがあります。「.htaccess」に一般的に記述するWordPressの設定WordPressがホームページ設置場所の一番上にない場合はWordPressを実行する記述を.htaccessに記述する必要があります。ホームページ設置場所の一番上にある場合は特に記述する必要はありません。記載する「.htaccess」の記述は以下です。WordPressこの場合、index.phpを「.htaccess」と同じところに作成する必要があります。index.phpの記述例は以下です。「.htaccess」を記述するならついでに以下を設定しておきたいです。インストール可能な状態のWordPressはクラッカーのクロールロボットが探していて狙われやすいです。実際にWordPressの乗っ取り被害対応を行った際にこれが原因のケースがありました。勝手にインストールされてダッシュボードからファイルアップロードツールやスパムメール配信ツールがわからないように設置される恐れがあります。データベースの接続先を設定する前に記述しておきましょう。以下では、「.htaccess」に記述する推奨のWordPressのセキュリティ設定例と設定内容の解説していきます。具体的な「.htaccess」に記述例です。運用に支障のある設定は下の解説を見て外してください。2.4を使用している場合の設定例です。denied」の記述方法が異なりますので注意が必要です。denied</Files>HTTPヘッダ関連の設定HTTPヘッダは、ページを表示する際の通信で送られる情報のヘッダ部分に設定する項目になります。ブラウザの開発者ツールなどで確認できます。以下の部分の解説を行っていきます。""</ifModule>「.htaccess」の「X-Powered-By」の解説レスポンンスヘッダのX-Powered-Byパラメータには、PHPなど実装言語のバージョン情報が表示されます。公開されているバグ情報など攻撃の方法が絞り込めるため、リスクになります。この表示は表示できないようにすることができますので、表示されないようにします。「XSS」とは、攻撃者が作った不正なスクリプトを、被害者のWebブラウザーで実行する攻撃です。続きを読む「.htaccess」の「X-Frame-Options」の解説X-Frame-Optionsパラメータは、HTMLないでFrameタグの機能の制御を行います。クリックジャッキング攻撃などFrameタグを利用しますので制限しておきます。X-Frame-Optionsが表示され、DENY(全く許可しない)、SAMEORIGIN(自身と生成元が同じフレーム内に限り許可)などの設定が行えます。「クリックジャッキング」とは、ユーザーをだまし、特定の場所をクリックさせることで攻撃を行う手法のことです。本記事では、「クリックジャッキング」の攻撃手法や被害実例、最低限やっておきたい対策方法を紹介しています。続きを読む「.htaccess」の「X-XSS-Protection」の解説X-XSS-Protectionパラメータは、ブラウザのクロスサイトスクリプティング(XSS)のフィルタ機能を有効/無効にします。mode=block」のように設定します。「0:XSSフィルタを無効にする。1:XSSフィルタを有効にする。「.htaccess」の「X-Content-Type-Options」の解説ブラウザによっては、コンテンツの内容からファイルを推測する仕様となっています。X-Content-Type-Optionsパラメータに、nosniffとしてすると、このファイルタイプの推測が動作しなくできます。「.htaccess」の「X-Download-Options」の解説IEでX-Download-Optionsでファイルダウンロード時のダイアログを制御します。noopenとすることでIE8以降ではユーザーはファイルを直接開くことができないようになります。デフォルトのブラウザの設定がそうなっているケースが多いので念のため記述しておく、攻撃者への威嚇みたいなつもりで記述しておきます。「.htaccess」の「Set-Cookie」パラメータの「secure」の解説クッキーを使用したページの表示の際にhttpでそのやり取りをするとは盗聴されたり改ざんされる恐れがあるので、httpsのときだけやり取りできるようにします。httpsに対応していない場合は設定できません。「.htaccess」の「Set-Cookie」パラメータの「HttpOnly」の解説Set-Cookieパラメータの「HttpOnly」属性を設定することでCookieをJavaScriptからアクセスできないようにできます。クロスサイトスクリプティング攻撃などを利用してCookieを採取され、セッションハイジャックのリスクを解消します。例にありませんが、httpsに対応している場合は、Strict-Transport-Securityパラメータも設定しておきたいです。Strict-Transport-Securityを設定することで指定されたサイトが常にHTTPSを使ってアクセスするようにブラウザに指示できます。max-ageは有効にする期間、includeSubDomainsでサブドメインにもルールを適用します。ファイルへのURLアクセスの制限ログイン画面など万が一アカウント情報が漏洩してしまった場合に乗っ取り被害に遭ってしまいます。以下の記述のファイルへのURLアクセスの制限について解説していきます。denied</Files>「.htaccess」の「xmlrpc.php」の解説スマホのアプリなどと連携してWordPressを更新するなどの用途のため「xmlrpc.php」ファイルがあります。Dos攻撃でホームページに負荷を与えて表示できないようにされるリスクが増えるため、アクセスできないようにしています。使用したい場合は記述を削除してください。「.htaccess」の「wp-config.php」の解説WordPressが使用するデータベースの接続先などを記述するWordPressの設定ファイルです。WEBサーバの設定ミスなどで中身が表示できてしまうような事態を想定して、URLアクセスできないようにしておきます。「.htaccess」の「wp-login.php」の解説もしアカウント流出したり、インストール前にセットアップを実行されてダッシュボードに侵入されそうになっても大丈夫なようにログイン画面に制限をかけておきます。グローバルIPアドレスのところはご自身のものに変更してください。固定IPでない場合などはBASIC認証などで置き換えてもいいです。いつの間にかバックドアが設置されてしまったら大変です。バックドアは気づかれずに後で侵入するための裏口みたいなものです。バックドアが仕込まれたら最後、サーバ全体に感染が広がります。そのようなエグい被害が起きています。以下のようなURLのパラメータがある場合にファイルをアップロードフォームを表示するアップロードツールです。ネットで検索してみてください被害の形跡が見つかると思います。現在は表示されませんが、古いバージョンのWordPressはバージョン情報が表示されます。古いWordPressのバージョンがわかると様々な脆弱性が公開されておりますので危険です。他にも表示される部分はありますが注意喚起のため記載させていただきました。denied</Files>最後にインストール時のセットアップページが狙われる、ログインアカウントの漏洩や単純なパスワードが原因となることが多いです。同様のWordPressの被害が減らせればと思い「.htaccess」配置時を想定して記事を書かせていいただきました。参考になればと思います。~初心者の方向け~最近の投稿Facebookが乗っ取られた場合の報告や対処方法モンキーテストとは?やり方と観点。