Web

DokuWiki のアクセス設定チェックが面白い

投稿日:2019年1月11日 更新日:

1. It seems your data directory is not properly secured.

DokuWiki を使っていると、管理画面に以下のメッセージが表示されることがあります。

It seems your data directory is not properly secured.

「It seems your data directory is not properly secured.」を日本語に翻訳すると、

dataディレクトリが正しく保護されていないようです。

となりますが、これは「dataディレクトリがブラウザからアクセスできてしまう」ということを警告しています。

また、この表示部分は画像になっており、Security [DokuWiki] へのリンクが貼られています。その先のページを読んでみると、dataディレクトリは「Web からアクセスできてはいけません」とあり、こちらも同じようなことを言っています。

2. 対応方法

対応方法ですが、Security [DokuWiki] に書いてある通り、dataディレクトリをウェブからアクセスできないようにするだけです。

付属している data/.htaccessファイルに、アクセスを制限する設定が書いてあるはずなので、ここをちゃんと確認しましょう(以下がその設定内容です)。

<IfModule mod_authz_host>
    Require all denied
</IfModule>
<IfModule !mod_authz_host>
    Order allow,deny
    Deny from all
</IfModule>

それでもダメなら、Security [DokuWiki] を読みます。

最悪、このメッセージを消したいだけなら、data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png ファイルだけアクセスできないようにすればよいです。このファイルのパーミッションを変えるなり、何をしても構いません。

3. 珍しいアクセスチェックの仕組み

今回のエラーメッセージは、簡易的な「アクセス設定チェック機能」によって表示されています。

どういう機能かというと、

  1. 正常に設定できていたら ウェブからアクセスできないはずのディレクトリに、画像ファイル(エラーメッセージが書いてある)を置いておく。
  2. 管理画面で、この画像を普通に表示させる。(imgタグ)
  3. 表示できたら「設定に問題がある」と分かる。

というシンプルな機能です。

こんな仕組みであるため、「正常に設定できている場合」は画像にアクセスすることができずにエラーが発生します。

実際、正常に設定できている環境で管理画面を開き、ブラウザのデベロッパーツールを見てみると、エラーが発生していることが分かります。

正常に設定しているのにエラーが発生する
正常に設定しているのにエラーが発生する

ずいぶん荒っぽい方法ですし、こんなエラーが出てしまってよいのだろうかと思います。しかし、既にお気付きの方がいらっしゃるかもしれませんが、エラーログに表示されるファイル名をよくよく見てみると、

dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png

(日本語訳)
あなたのログにこれが見えてもパニックにならないで下さい。これは、あなたのディレクトリ・パーミッションが正しいことを意味しています。

つまり、「これが正常な動作なので問題ないですよ」と説明しています。

なかなか掟破りなやり方です。ファイル名でそんな意図を伝えられても、この仕組みを知っていないと焦ってしまうと思います。

管理画面なので、まぁこのやり方でも問題ないという判断なのでしょう。

4. おわりに

ブラウザの Console を見て、「管理画面でエラーが発生している!」と焦ってしまう人がいるのではないかと思い、この記事を書くことにしました。なのですが、気付く人自体少ないような気もします。

📂-Web

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Web

Material の Icons (アイコン)を導入する手順

2020年8月:Material design icons 側に変更があり、手順が変わってしまったようです。 目次1. はじめに2. Icons の導入手順2-1. Google Web Fonts …

Web

window.opener を使って元ウィンドウの情報が取得できるかどうかの実験

ウェブブラウザでウェブページを表示している場合、ブラウザのウィンドウを表す window というオブジェクトが存在しており、JavaScript から利用することができます。 window.opene …

ウェブブラウザのリロード処理

目次1. ウェブブラウザの「リロード」は普通のアクセスとは違う!2. もう一つのリロード3. 表にまとめてみました4. おまけ5. おまけ2: Chrome でのリロード操作6. 参考 1. ウェブブ …

Web

URLリダイレクトの動作

URLリダイレクトの動きについて説明します。

Web Vitals

Chrome UX Report API を使う手順 (cURL の場合)

Chrome UX Report API を使う手順 (cURL の場合)を紹介します。