人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで作られた
<?php
?>
部分は、WEBにアップしたら、閲覧者にソースなどからは絶対に見られることはありませんか?
例えば、属性の数値の変更などによっては見ることができてしまったりするのでしょうか?

●質問者: minomino13
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP Web ソース 属性
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● 海老原昂輔
●23ポイント

.phpをPHPとして実行することができない状態(apacheの設定など)であればソースコードを見られてしまうと思います。

◎質問者からの返答

ありがとうございます。

PHPとして実行できればソースコードは見られてしまう危険性は無いということでしょうか?


2 ● hsada
●23ポイント

http://www.phpweb.jp/manual/manual06.php

実行権限が与えられていなかったり、WEBサーバーの設定でPHPを実行しないように設定した場合、単純なTEXTファイルとして表示します。

◎質問者からの返答

ありがとうございます。

やはり属性(パーミッション)は644ではなく、705などに変えるのは常識なのでしょうか?それによる弊害はありますか?


3 ● haniwa91
●22ポイント

重複になりますが・・・

「PHPとして実行されればソースコードは見られない」

これは正しいです。逆に設定などにより実行されなかった場合に危険があります。

またありがちなミスとしてrequireなどで利用するファイルを「subfile.inc」のような名前にしていると

直接ファイル名を指定された場合にPHPとして実行されず中身が見えてしまうケースがあります。

もうすこしこみいったケースでは外部ファイルの読み込みを動的に行っているプログラムを悪用されるケースがあります。


$file = $_GET['head']; // "default.html" のようなパラメータが欲しい

$header = file_get_contents($file);

echo $header;

?>


上記のコードの場合、headパラメータに「config.php」のような名前を与えてPHPファイルが読み出されてしまいますね。

◎質問者からの返答

ありがとうございます。

場合にもよるようですが、基本的に「PHPがPHPとして実行されていればソースコードは見られない」という考えで合っていますかね?


4 ● Yota
●22ポイント

上の回答とかぶりますが、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でファイルを作るせこいセキュリティ対策もあります。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ