PHPのエラーをブラウザに出力しないようにするには[WordPress]

シェアしていただけるとうれしいです



PHPのエラー情報は危険がいっぱい

WordPressを使っていると、やっぱりカスタマイズしたくなるのが「人間」というもの。書籍を見たり、ネットで調べたりして、「あ、これ、やってみよう!」ってやってはみたものの、サーバーにアップロードすると何やら怪しげな文字が。

PHP Parse error: syntax error, unexpected end of file, expecting ‘,’ or ‘;’ in /home/hoge/foo/test.php on line 3

こんな感じの表示なのですが、PHPが吐き出しているエラー表示です。エラーがあるためにページの表示ができなくなっています。
ここで問題なのは、

/home/hoge/foo/test.php

と、サーバー上の物理パス(フォルダ名)が見えてしまっていること。よくあるのがFTPのユーザー名がパスの中に入っていることがあって、全世界の攻撃者にあなたのブログのサーバーのFTPアカウント名を公表していることになってしまいます。

これはちょっとまずいですね。

PHPのエラー情報をブラウザに表示しないようにするには

サーバーによって、できる、できないがあるかもしれないのですが、下記をお試しください。

.htaccessに記載する方法

  1. FTPでサーバーにログインします。
  2. Webのルートディレクトリ(Webから見える一番上のディレクトリ)に「.htaccess」というファイルがあればダウンロードします。
    なければ、自分のPC上に「htaccess.txt」というファイルを作成します。
  3. 「.htaccess」または「htaccess.txt」に次の1行を追加します。

  4. ファイルをサーバーにアップロードします。
    「.htaccess」は上書きします。
    「htaccess.txt」はアップロードしてから「.htaccess」にリネームします。
  5. ブログにアクセスして、エラー表示が出ていないこと、別のエラーが表示されていないことを確認します。

php.iniに記載する方法

ぼくが借りているレンタルサーバーで上記の方法を試すと「500 Internal Server Error」が出てしまいました。.htaccessにPHPの設定を書けないようです。レンタルサーバーのFAQを見ると、「php.iniに記述して、有効にしたいディレクトリの一番上に置け」と書いてありました。

テキストエディタで、

と1行だけ書いて保存し、Webのルートディレクトリにアップします。
PHPのエラーが表示されていないことを確認しました。

ところが、php.iniにブラウザでアクセスすると、内容がまるわかり。全世界にphp.iniの設定内容を公開しているようなもん。.htaccessに下記の内容を追加して、どこからもアクセスできないようにします。

以上です。
これで全世界に機密情報を晒さずにすみます。

いわゆる「画像直リンク」、画像の複製は固くお断りいたします。
スポンサーリンク

シェアしていただけるとうれしいです

フォローよろしくお願いします

関連記事



スポンサーリンク