アプリ版:「スタンプのみでお礼する」機能のリリースについて

かなり初歩的な質問かもしれませんが、宜しくお願いします。

普通、PHPファイルの中身はブラウザでは表示されないと思うのですが、
それは絶対に表示されないものなのでしょうか?
それとも何らかの方法で見られてしまうことがあるのでしょうか?

パスワードなどの重要な情報を変数に格納しなければならない場合、
そのファイルを.htaccessで制御したりした方が良いのでしょうか…?

A 回答 (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 等
    • good
    • 1
この回答へのお礼

>.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>

にしたほうが断然スマートでいいですよね。
再度回答をありがとうございました。

お礼日時:2006/09/18 23:56

HTTPからは見られませんが、FTPから見られる可能性はあります。


通常は気にしなくてもいいレベルの話です。
    • good
    • 2
この回答へのお礼

ありがとうございます。
HTTPからは見られない、気にしなくていいレベルと聞いて少し安心できました。
神経質になりすぎずも、セキュリティに気を配っていきたいと思います。

お礼日時:2006/09/18 23:40

No2訂正です


foam じゃなくて、 formですね
m(__)m
    • good
    • 0

phpが動くサーバーであれば


拡張子を、.phpにしておけば まず間違いなく見られることはありません

外部から直接アクセスされたくないphpファイルの場合は、拡張子を.inc 等にして .htaccess で.incの拡張子をもつファイルを外部から見られないように設定してあげればなお良いです
サーバーによっては標準設定で ,inc拡張子のファイルには外部から直接アクセスできないようにしている所もあります。


ただし、あなたのソースの書き方によっては意図しないエラー表示が出て、そこから推測されてしまう可能性もあります

インジェクションやXSS等の対策を施しましょう



また、せっかく外部から見られないようにしているにもかかわらず、(HTMLの)<foam>等でパスワード等の大切な情報をhiddenで渡すようなバカな事しないでくださいね
    • good
    • 0
この回答へのお礼

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で渡すようなバカな事しないでくださいね

ページ間での情報の受け渡しはセッションを使う…で正解でしょうか。
というかそれしか思いつかなくてその方法をとっています…こちらも勉強が必要ですね。

お礼日時:2006/09/16 10:18

.htaccessは、私はいじらなくてもいいとは思いますが。


初心者は、取り合えず、クロスサイトスクリプティングを検索しましょう。
    • good
    • 0
この回答へのお礼

クロスサイトスクリプティング、耳にしたことがあるくらいでしたが
今回私が質問したようなことにも関係することだったのですね。
早速勉強し始めようと思います。
アドバイスありがとうございました。

お礼日時:2006/09/16 09:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!