###前提
WordPressのセキュリティを調べていたらこちらのページを拝読しまして
すべて公開ディレクトリにあるのでPHPファイルが読まれてしまう
ということを知り驚きました。
フロントから受け取った値をバリデーションしていたのですが、その方法が丸見えだったのか!と…
###理解したこと
さっそく自分のサイトで以下試したら、ばっちり丸見えでした。
http://example.com/wp-content/plugins/plugin_name/readme.txt
ところが以下は「You die!」と表示されました。
http://example.com/wp-content/plugins/plugin_name/init.php
このファイルを見てみますと先頭に以下がありました。
defined('ABSPATH') or die('You die!');
ここで、全てのPHPファイルにはこのdefined()
の処理での対策が必要で、なければ丸見えなのだと理解しました。
###質問
前置きが長くすみません。
質問は1、2、3です。
1.
以下にアクセスすると「500エラー」(このページは動作していません)でした。
http://example.com/wp-content/themes/my_theme_name/lib/cf.php
このファイルは自分が書いたものなので、先のdefined()
の処理などの対策がありませんが、なぜ丸見えにならず「500エラー」になるのでしょうか。
2.
以下にアクセスすると「真っ白」でした。
http://example.com/wp-content/themes/my_theme_name/lib/valid.php
これも自分が書いたもので特に対策はしていないのですが、なぜ「500エラー」だったり「真っ白」だったりするのでしょうか?
尚、「真っ白」とは以下HTMLです。
<html><head></head><body cz-shortcut-listen="true"></body></html>
3.
「500エラー」や「真っ白」のものたちは、このままでも平気でしょうか?
それとも自分で書いたPHPファイルは、子テーマのsingle-custom.phpなども含めて全てdefined()
の処理を先頭に書いた方がよろしいでしょうか?
セキュリティ関係にお詳しい方からのご回答お待ちしております。
宜しくお願い致します。
###追記
「500エラー」になったcf.phpと、「真っ白」になったvalid.phpは以下の内容です。
cf.php
カスタムフィールド関係の自作関数が並んでいるファイルで、他にはadd_action()
というWordPressの独自関数もあります。
valid.php
フロントから受け取った値をバリデーションする自作関数が並んでいるだけのファイルです。
これらの自作関数は全てfunction my_xxx(){}
という書き方です。
回答2件
あなたの回答
tips
プレビュー