すみません。unix系、php、web系 初心者です。
Mysql を利揺するのにpearで接続しています。
phpで記述している部分でdsnの部分がありますが
パスワードやユーザー名、サーバー名等が平文?そのまんま記述していますが危険ですよね?
そういうファイルは公開フォルダ( wwwやpublic_html )に置くべきでは無いですよね?
公開フォルダより上位に置いておけば安全ですか?(100%では無いと思いますが...)
公開フォルダと同じ並びに置く場合
その場合、パスの指定はどのように指定すれば良いでしょうか?
../../functions/
/functions/
のようでしょうか?
またrequire_onceで読めるでしょうか?
申し訳ありません...

今は以下の様にしています。
/www/functions/hogehoge.phpです

<?php
$functions_path = '../functions/';
set_include_path(get_include_path() . PATH_SEPARATOR . $functions_path);

require_once('hogehoge.php');

このQ&Aに関連する最新のQ&A

A 回答 (4件)

公開フォルダにおかざるを得なくて.htaccessも使えない場合の裏技


.htで始まるファイルはデフォルトで外部アクセス禁止になっていることが多いのでパスワードを書いたファイルの名前を
.htpass
とかにしておく方法もあります
サーバ内からは
require_once('.htpass');
で読めます
    • good
    • 0
この回答へのお礼

ありがとうございます
勉強になりました
使用しているサーバーでは禁止されているか確かめてみます。

お礼日時:2009/05/27 16:51

>ページのソースをみてfunctionを利用している、phpファイルのアドレスが書いてあったらと思うと不安なのです。


>そのphpのpathをアンカータグで記述したファイルをどこかにアップすれば、functionのphpファイル名、pathが記述されたphpが取得出来てしまうのではな>いでしょうか?と思うのです...

要するに、例えば
http://www.example.com/something.php
----
<?
require_once('./function/function.php');
...
----

http://www.example.com/function/password.php
----
<?
$password = "hogehoge";
----

というファイルが置いてあって、外部から

<?
require("http://www.example.com/function/password.php");
echo $password . "\n";
?>

としたら、パスワードが見えてしまうのではないか?という事を気にしていますか?

somethings.php や password.php は HTMLの出力結果のみを
出力するので、こういった記述自体はおきませんが、
password.phpが、(apacheの設定ミスなどで)間違って平文で表示されてしまったら
確かにアウトです。ので、諸々考えるならば、やはり公開エリアにおかないのが
無難です。


>その場合、パスの指定はどのように指定すれば良いでしょうか?

>$functions_path = '../functions/';
>set_include_path(get_include_path() . PATH_SEPARATOR . $functions_path);
>require_once('hogehoge.php');



require_once('../functions/hogehoge.php');

でよいと思います。
    • good
    • 0

> 公開フォルダより上位に置いておけば安全ですか?



これがよいですが、

> /functions/

においておくのであれば、

/functions/index.html

というファイルを作っておいて(中身は空でよいです)下さい。

HTTPサーバーの設定で、ディレクトリの中が参照されるように
なっている可能性があるので。
    • good
    • 0
この回答へのお礼

ありがとうございます
そうですよね。index.htmlは入れてあります。
ページのソースをみてfunctionを利用している、phpファイルのアドレスが書いてあったらと思うと不安なのです。
そのphpのpathをアンカータグで記述したファイルをどこかにアップすれば、functionのphpファイル名、pathが記述されたphpが取得出来てしまうのではないでしょうか?と思うのです...
間違っていたら申し訳ありません...

お礼日時:2009/05/27 16:49

万が一phpが実行形式でなくなった場合の措置であれば、


インクルードパスを公開フォルダ外におけば問題ないでしょう。
昔からCGIでcgi-binを使うのと同じような処理ですね。

実際にはクラスを使ってライブラリ化しておくと再利用性があがります。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2009/05/27 16:34

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qは何のためにあるんでしょうか?

ホームページの制作の仕事をして数ヶ月たちます。
参考に、他のウェブサイトを保存してソースを見る事があるのですが、テーブルでレイアウトしているサイトでよく<tbody>タグを使っているところを目にします。(私は使うメリットがわからないので使っていませんが…)
<tbody>を使うことに何かメリットがあるのでしょうか?
もし便利な使い方があれば教えてください。

Aベストアンサー

現在のところ、メリットは無いと思います。

ただし、tbody要素の意味は、テーブルは、複数の行から構成され、一行ごとにtr要素の内容として記述します。テーブルの内容である複数の行を一つのまとまりとして扱いたい(意味づけをしたい)場合に、thead、tfoot、tbody 要素を利用出来ます。
(HTML要素の中もhead, body要素があるような感じで構造化が出来ます)

もちろん、tbody要素は省略可能となっておりますので、省略されても特に支障はありません。

SGMLには省略タグ機構という仕組みがあり、HTMLのSGML宣言はOMITTAG YESとなっていますので、省略タグ機構を用いることが出来ためです。

詳しい説明は、下記URLの説明を参照してください。
http://www1.u-netsurf.ne.jp/~7l1rll/SGMLsec6_0.html#3_1_1

また、XMLを基に再定義されたXHTMLでもtbody要素は省略可能です。
http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd

 <!ELEMENT table
   (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

このように定義されたいますので、現在のところテーブルの構造を構造化(視覚的にではなく)したい場合を除き、tbody要素を使うメリットは無いと思います。

強いて言えば、見えないオシャレに使って頂ければと思います。

参考URL:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/tables.html#h-11.2.3

現在のところ、メリットは無いと思います。

ただし、tbody要素の意味は、テーブルは、複数の行から構成され、一行ごとにtr要素の内容として記述します。テーブルの内容である複数の行を一つのまとまりとして扱いたい(意味づけをしたい)場合に、thead、tfoot、tbody 要素を利用出来ます。
(HTML要素の中もhead, body要素があるような感じで構造化が出来ます)

もちろん、tbody要素は省略可能となっておりますので、省略されても特に支障はありません。

SGMLには省略タグ機構という仕組みがあり、HTMLのSGM...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報