
No.5ベストアンサー
- 回答日時:
再び No2です
>あとこれは.incではなく.phpでも良いのでしょうか?
>.inc拡張子にしてから.htaccessで設定する特別な理由があるのでしょうか?
>ただ単に.phpに.htaccess設定する必要は無いからということでしょうか?
御幣を与えてしまったようですね
.htaccessで設定するのは、.incファイルをFTPする前です
(まぁ、すぐに設定すれば後でもかまわないんですけど、タイミング的に、あなたが設定するまでの一瞬の間にアクセスされない保証はどこにもありませんからね・・・)
.phpの拡張子は、外部から閲覧するためには、外部からのアクセスを許可しなくてはいけないので、設定するためには、ファイル名+.php をいちいち .htaccess に記述しなくてはいけなくなり、面倒ですし間違いも起こりえます
ですから、一番最初にFTP作業前に .htaccessに .incの拡張子すべてをアクセス拒否 と記述しておけば、その後は.htaccessを書き直す必要ないですからね
たとえば、.htaccessに
<Files ~ "\.(inc|txt|dat)$">
deny from all
</Files>
と記述しておけば、.inc .txt .dat の拡張子を持つファイルすべてを、外部から(ブラウザ経由で)直接閲覧不可にできます
この中に.phpを入れてしまったら、ブラウザ経由で.phpをアクセスできなくなってしまうので、誰もあなたのサイトを見ることができなくなります
.inc
外部から直接アクセスしてほしくない、設定ファイルやクラスのみを記述したPHPファイルを.incにしておいてアクセスを禁止する
例)
common.inc
class.inc
config.inc
等
.php
外部からアクセスしてほしいphpファイルに対して付ける
例)
index.php 等
>.phpの拡張子は、外部から閲覧するためには、外部からのアクセスを許可しなくてはいけないので、設定するためには、ファイル名+.php をいちいち .htaccess に記述しなくてはいけなくなり、面倒ですし間違いも起こりえます
なるほど!その通りですね。
.incを見せないファイル、.phpを見せるファイル、というようにしてしまえば、ずっと分かり易く楽ですね。
今まで.htaccessに
<Files ~ "\.(log|dat|csv)$">
deny from all
</Files>
(↑解説サイトによくあるサンプル)
<Files ~ "^○○\.php$">
deny from all
</Files>
と設定していましたが、
○○.php→○○.incにして、
<Files ~ "\.(log|dat|csv|inc)$">
deny from all
</Files>
にしたほうが断然スマートでいいですよね。
再度回答をありがとうございました。
No.2
- 回答日時:
phpが動くサーバーであれば
拡張子を、.phpにしておけば まず間違いなく見られることはありません
外部から直接アクセスされたくないphpファイルの場合は、拡張子を.inc 等にして .htaccess で.incの拡張子をもつファイルを外部から見られないように設定してあげればなお良いです
サーバーによっては標準設定で ,inc拡張子のファイルには外部から直接アクセスできないようにしている所もあります。
ただし、あなたのソースの書き方によっては意図しないエラー表示が出て、そこから推測されてしまう可能性もあります
インジェクションやXSS等の対策を施しましょう
また、せっかく外部から見られないようにしているにもかかわらず、(HTMLの)<foam>等でパスワード等の大切な情報をhiddenで渡すようなバカな事しないでくださいね
inu2さん回答ありがとうございます。
>phpが動くサーバーであれば
>拡張子を、.phpにしておけば まず間違いなく見られることはありません
ふむふむ、そうですよね。
ただ、cgiファイルの中身が表示されてしまったという原因不明の事例があったので
(http://sb.xrea.com/archive/index.php/t-9162.html)
もしapacheの異常動作などでスクリプトファイルが表示されてしまうようなことがあっても
.htaccessしておけば安心かななんて思ったりしました。
>外部から直接アクセスされたくないphpファイルの場合は、拡張子を.inc 等にして .htaccess で.incの拡張子をもつファイルを外部から見られないように設定してあげればなお良いです
なるほど。
参考書に『.incはブラウザで見られる可能性があるからおすすめしない』というようなことが書いてあったので
今まではとにかく全て.phpでやっておこうって感じだったのですが、inu2さんが仰るようにする場合は良いですね。
あとこれは.incではなく.phpでも良いのでしょうか?
.inc拡張子にしてから.htaccessで設定する特別な理由があるのでしょうか?
ただ単に.phpに.htaccess設定する必要は無いからということでしょうか?
>ただし、あなたのソースの書き方によっては意図しないエラー表示が出て、そこから推測されてしまう可能性もあります
>インジェクションやXSS等の対策を施しましょう
はい、インジェクションやXSS等の対策…聞きなれない言葉です…ちゃんと勉強しなければいけないですね。
>また、せっかく外部から見られないようにしているにもかかわらず、(HTMLの)<foam>等でパスワード等の大切な情報をhiddenで渡すようなバカな事しないでくださいね
ページ間での情報の受け渡しはセッションを使う…で正解でしょうか。
というかそれしか思いつかなくてその方法をとっています…こちらも勉強が必要ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【file_exists】ファイルが存在...
-
file_exists('http://192.168.0...
-
.phpと.incファイルの違いはな...
-
fputs()はfwrite()のエイリアス...
-
apache+phpにおいてリクエスト...
-
CakePHP2のCronでのShellを使う...
-
URLが.PHPってどういう...
-
.phpファイルが、表示されない
-
*.php、*.php3、*.phtmlの違い
-
ImageCreate関数が undefined f...
-
ob_end_clean と ob_clean の違...
-
フォームで戻った際に入力済み...
-
円グラフ描画について
-
phpのextension_dirを複数指定...
-
CFileDialogの最初のディレクト...
-
ZendFrameworlkでZend_Session...
-
サーバにある画像の存在をチェ...
-
バッチを用いたフォルダの自動移動
-
Bookを閉じて保存した時のみ実...
-
IIS+PHP スクリプトから仮想デ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
.phpファイルが、表示されない
-
【file_exists】ファイルが存在...
-
URLが.PHPってどういう...
-
phpinfoの内容が見れない
-
PHPファイルの中身が見られるこ...
-
コマンドプロンプト エラー
-
PHPでフォルダ選択ダイアログを...
-
PHPの戻り値をWINDOWSバッチフ...
-
さくらレンタルサーバーでPHPが...
-
session_start()でwarningが表...
-
サイトのphpソースコードを表示...
-
CakePHP2のCronでのShellを使う...
-
htdocsフォルダ以外ではPHP...
-
phpMyAdmin-5.0.4-all-language...
-
phpmailerで送れない添付ファイ...
-
Fatal error: Class 'Config' n...
-
HTMLに埋め込んだPHPがうまく出...
-
apacheで拡張子を省略してアク...
-
Wordpressの質問です(テーマエ...
おすすめ情報