2012-03-03 15 views
-1

私はファイルが含まれている状況にありますが、他の人が "インクルード"ディレクトリに移動してブラウザを介してページを個別に表示することは望ましくありません。PHPを無効な参照元から.HTACCESS経由で保護しますか?

私はPHPファイルそのものを介してアプローチする方法にはかなり精通していますが、今回は.htaccessを使用してこの問題を回避したいと考えています。

したがって、特定のリファラーから「include」フォルダ内のPHPファイルを表示しないように、.htaccessを設定するにはどうすればよいですか?

+0

:-)

これは私には意味がありません:あなたは 'それはそのスクリプトを含むとまったく同じリファラを持っているPHPで()'ファイルをインクルードする場合。私はポイントを逃していますか? – knittl

+0

あなたはリファラーのものが何かをよく理解していますか? –

答えて

2

.htaccess代替案を提案するにはどうすればよいのでしょうか?インクルードディレクトリをウェブルートの外に移動してみませんか?あなたのスクリプトは引き続きアクセスすることができ、アクセスを拒否するようにApacheを設定する必要はありません。

+0

ありがとう、私はそれをやって考えたことはありません。 – Propeller

+0

@SedoSurashuフレームワークとアプリケーション全体がウェブルートの外側にあるフレームワークでは、よくあることです。ルート内の唯一のファイルはリソース(images/javascript/css)と、アプリケーションをブートストラップする単一のファイルです。 –

0

あなたが見ることがないように好きで、そこにこれを置くディレクトリにある.htaccessファイル置く:

order allow, deny 
deny from all 

これは、すべてのアプローチ単純なブロックです。リファラーによってブロックする方法の詳細は、hereを参照してください。 これが役立つことを願っています。

0

多くのWebホスティングソリューションは、public_html(またはequiv)階層内で作業することを明示的に制限しています。だから私は単純な慣例を使用します。ファイルやディレクトリをプライベートにしたくない場合(URIを通じてアクセスできない場合)、その名前の前に "_"または "."の接頭辞を付けます私のPHPインクルードディレクトリは "_includes"と呼ばれています。

私はこれを強制するために、私の.htaccessファイルでこのパターンを使用します。

SetEnvIf Request_URI "(^_|/_|^\.|/\.)" forbidden 
<Files *> 
    Order allow,deny 
    Allow from all 
    Deny from env=forbidden 
</Files> 

あなたがこのアプローチを使用していますが、あなたの個人的な慣習に合ったものは何でもする正規表現を変更することができます。 1つの利点は、DOCROOT .htaccessファイルのこのテンプレートで動作することです。制限付きサブディレクトリにファイル.htaccessを置く必要はありません。

関連する問題