2011-07-18 18 views
0

私のプロジェクトのインストーラで作業しています。インストーラは設定ファイルを作成します。PHPでのPHPファイルの作成

私はそれを99.99%正常に動作させていますが、そのファイルでは、ハッキングが直接的にアクセスできないことを確認するチェックが必要で、そのコードは毎回$ _SERVERスーパーグローバルを使用します。それは私がやろうとしている論理を破ります。

誰もが、私はそれが解析するか、私は私のロジックを再考し、他の場所でそれを追加する必要なく、そのままスーパーグローバルはそのまま滞在してもらうことができます知っていますか?コードを見てみたいことがあり人のための

は、ここにある:

あなたは、Apache(または任意の.htaccessの互換性のあるサーバー)を使用している、あなただけのフォルダに .htaccessファイルを作成する必要がありますと仮定し
#Disable direct access. 
if(!strcasecmp(basename($_SERVER['SCRIPT_NAME']),basename(__FILE__)) || !defined('accessed')){ 
    die('<string>No Direct access is allowed for this file.</string>'); 
} 
+0

[.htaccess](http://www.htpasswdgenerator.com/apache/htaccess.html)の仕事のように聞こえる。 –

答えて

2

<Files config.php> 
    deny from all 
</Files> 

これは、HTTP要求を介してこのファイルにアクセスできないようにします。

詳細はusing .htaccess filesを参照してください。

+0

これは悪い考えではありませんが、IISがhtaccessファイルを受け入れるかどうかは100%確信していませんが、私は注意します。 – Eman

+0

申し訳ありませんが、私はIISが.htaccessを理解できないと確信しています。 'if(!define( 'SOME_CONSTANT_SET_BY_THE_FILES_WHO_INCLUDE_CONFIG'))exit;'のようなものを使わないのはなぜですか? –

+0

私はちょうどそれを行うかもしれません。 – Eman

1

スクリプトまたは.htaccess保護を使用しないでください。ファイルをドキュメントルートの外に書き込んでください。何かが利用可能にならないようにするには、利用可能にしないでください。ドキュメントルートにそれを置く

は、あなたの銀行はそれらに書かれた「盗むしないでください」とフロントウィンドウにお金の袋をぶら下げのようなものです。

+0

+1これは良い考えです –

+0

これは、これはどのタイプのサーバーでも実行されるということですので、私はApache、iisなどについて考える必要があります。また、句を追加しないと言っても大したことはありませんあなたがhtdocフォルダの外にあるすべてを隠すことはできないので、アクセスを防ぐために。 これはいくつかの事に当てはまりますが、私はそれがこのためだとは思わない – Eman

関連する問題