2017-04-01 4 views
0

は今、私のアプリが構築されていることを私はそれを保護する方法を研究しています。私はアプリの中からそれを指すことができますどのようにパブリックフォルダの外のフォルダにdatabase.phpでファイルを配置した場合は?インクルード構造を使用するだけでは不十分です。これは、パブリックフォルダの一番上にあるためです。どのように非パブリックフォルダに存在database.phpでのポイントのアプリケーション?

include '../database.php'; 

答えて

1

複数回include '../../../../database.php';それぞれを...また、あなたが「./」を使用することができ、現在のパスを指定するinclude '/home/secret_folder/place_of_database/database.php';

+0

は – Bricked

1

dirname()を使用できます。さんがあなたのフォルダ構造があるとしましょう:あなたのpublic_htmlファイルで

public_html/ 
    index.php 
    contact.php 
    whatever.php 
private/ 
    database.php 

、あなたが呼び出すことができます。

$db_file = dirname($_SERVER[ 'DOCUMENT_ROOT' ]) . '/private/database.php'; 
include_once($db); 

public_htmlがあなたの$_SERVER[ 'DOCUMENT_ROOT' ]であれば、dirnameはあなたpublic_htmlprivateを含むフォルダを与えるだろう。その後、パスをdatabase.phpに渡すだけです。

$db_file = dirname(dirname($_SERVER[ 'DOCUMENT_ROOT' ])) . '/private/database.php'; 

これはあなたに別のフォルダを上になるだろう:それは別のレベルをアップします(またはそれ以上)の場合は

、あなたはdirnameを複数回使用することができます。

あなたがそれを使用することができます
+0

ありがとう含めたいファイルものを手に入れることの多くの「../」を使用して、あなたがしているファイル。パブリックフォルダの外にあるファイルはどのくらい安全ですか?私は、アプリ内でファイルにアクセスすることしかできAMまたは一部の不正な人は何とかアクセスを得るために自分の道をたどることができますか? – Bricked

+0

ドキュメントルートの外に出る唯一の方法は、サーバーに直接アクセスできるか、コードに何かばかげたセキュリティ上の脆弱性がある場合です(ファイルの内容を取得して画面に表示するなど)あなたはそれについてうまく知っているだろう)。さもなければ、あなたの資格はこのように安全です。 –

+0

これはconfigとhtaccessファイルを置く場所です。 – Bricked

1

のように代わりに相対パス の完全なパスを定義することができる1つの親フォルダ を表し が、その後、フォルダ間を移動し、あなたが

+0

を働いた../../ SirNashが、これは実際に../../lib/database.phpを働いた、シューターをありがとうありがとう – Bricked

関連する問題