<?php
?>
部分は、WEBにアップしたら、閲覧者にソースなどからは絶対に見られることはありませんか?
例えば、属性の数値の変更などによっては見ることができてしまったりするのでしょうか?
http://www.phpweb.jp/manual/manual06.php
実行権限が与えられていなかったり、WEBサーバーの設定でPHPを実行しないように設定した場合、単純なTEXTファイルとして表示します。
ありがとうございます。
やはり属性(パーミッション)は644ではなく、705などに変えるのは常識なのでしょうか?それによる弊害はありますか?
重複になりますが・・・
「PHPとして実行されればソースコードは見られない」
これは正しいです。逆に設定などにより実行されなかった場合に危険があります。
またありがちなミスとしてrequireなどで利用するファイルを「subfile.inc」のような名前にしていると
直接ファイル名を指定された場合にPHPとして実行されず中身が見えてしまうケースがあります。
もうすこしこみいったケースでは外部ファイルの読み込みを動的に行っているプログラムを悪用されるケースがあります。
$file = $_GET['head']; // "default.html" のようなパラメータが欲しい
$header = file_get_contents($file);
echo $header;
?>
上記のコードの場合、headパラメータに「config.php」のような名前を与えてPHPファイルが読み出されてしまいますね。
ありがとうございます。
場合にもよるようですが、基本的に「PHPがPHPとして実行されていればソースコードは見られない」という考えで合っていますかね?
上の回答とかぶりますが、ApacheのモジュールとしてPHPを走らせるなら、httpd.confに下のように書けば、.phpのファイルはPHPのパーサに渡されるため、テキストファイルとしては吐き出されません。
AddType application/x-httpd-php .php
しかし、何かの手違いやクラッカの腕が上手であるために、見られる可能性がないとはいえないでしょう。そこで、念のためパスワードなどの設定ファイルは非公開ディレクトリにおいておいてrequire_once('')で呼び出す、といった対策をする場合が多いようです。
話はそれますが、
error_reporting = E_ALL & ~E_NOTICE
という設定にしてあるため、エラーや警告でスクリプトに何が書いてあるが推測できるサイトは結構世の中にあります。
それとわざわざPHPスクリプトであるということを宣伝する必要もないので
AddType application/x-httpd-php .asp
とか書いておいて、.aspでファイルを作るせこいセキュリティ対策もあります。
ありがとうございます。
ありがとうございます。
PHPとして実行できればソースコードは見られてしまう危険性は無いということでしょうか?