2011-09-03 15 views
1

ルートディレクトリに単純な設定ページがあります。 これはwordpressシステムのwp-config.phpと似ています。その名前はconfig.php(または何か)です。私のファイルにはいくつかのmysqlログインや一般的なページ機能があります(function.php)。PHPで必要なページ外の関数ページを呼び出すブロック方法

ユーザーがインデックスページを呼び出すと、config.php(または他の機能ページ)が読み込まれます。しかし、私はそれらを外部呼び出しから守りたい:mydomain.com/ config.phpに入ったときにユーザーをブロックまたはリダイレクトしたい。

1.これを行う方法はありますか?

2.セキュリティの問題はありますか?私は のセキュリティについて知らないが、私が思うとそれは私を悩ます。

+4

mydomain.com/config.phpにアクセスすると何も起こりません。たとえば、呼び出しがフレームワーク内にあるかどうかをチェックするか、.htaccess –

+1

を使用してページに直接アクセスできないようにするか、Damienが言ったようにして、ページに直接アクセスできないようにすることができます。 config.phpへの呼び出しを含める前に、変数を特定のパスフレーズに定義することによってフレームワークを制限し、すべてのファイルでその変数を設定することができます。 config.phpでは、変数が定義されていて正しい値を持っているかどうかを確認できます。 –

答えて

1

コメントに示唆されているとおり、.htaccessまたは事前定義された変数の単純なチェックを使用して、これらのファイルへのアクセスを制限することができます。ただし、httpdから読み込み不可能なパスにそれらのファイルを置き、そこからファイルをインクルードすることが最善の方法です。

webrootディレクトリ(index.phpがある)は、おそらく/var/www/your_site_dir/htdocsのようなものです。それらを親ディレクトリ(/var/www/your_site_dir)に入れてください。他の制限は必要ありません。

セキュリティに影響するかどうかは、コードがどのように書かれているかによって異なりますが、その場合に備えてアクセスを常に制限する必要があります。 100%安全なシステムはありません。また、誰かがリソースにアクセスできないという条件付きの可能性がある場合でも、安全とはみなされません。

1

まず、実行ファイルを含むファイルに実行コードを入れないでください。このようにして直接呼び出されたとしても、クラス/関数を定義するが実行しないので何も起こりません。場合は、この方法ではdefine('IN_APP', true)

を追加

<?php 
    if (!defined('IN_APP')) { 
    exit(); 
    } 

そして、あなたのアプリケーションで:あなたがそれらをNarfが示唆@道を守ることができない場合

次に、あなたがすべてのあなたのファイルを開始することができますあなたのファイルは直接呼び出され、ただ終了します。

関連する問題