-1

すべてのアクセスを拒否したい MVC ディレクトリ構造にプライベート フォルダーがあります。このフォルダー (および含まれるファイル) にアクセスできる唯一の方法は、インクルードのみを使用することです。

パブリック フォルダーの場合、それが私のビューであるため、誰でもアクセスできるはずです。

ルート index.php は私のエントリ ファイルであり、プライベート index.php スクリプトを含めて実行できるはずです。

これを達成するために私を助けたり、正しい方向に向けたりできる人はいますか?

private
    model
    controller
    core
    config.ini.php
    index.php
    ...
public
    stylesheets
    signup.php
    login.php
    index.php
    ...
index.php
4

3 に答える 3

1

それを行う2つの方法:

1: 適切な方法

/homedir/ - ウェブサイトの場所

/homedir/private/ - プライベート ファイルの場所

/homedir/httpdocs/ - ウェブサイトの公開部分

2: 別の方法

/httpdocs/private/ - プライベート ファイル

/httpdocs/private/.htaccess - 注文を許可、拒否、すべてから拒否

/httpdocs/ - 残りのファイル

ただし、Web サーバーがハングアップしたり、特定の設定を変更したりすると、.htaccess ファイルが非アクティブになる可能性があることを知っておく必要があります。

つまり、すべてのプライベート ファイルがブラウザ経由で利用できるようになります。

そのため、.htaccess 制限よりも最初の方法が優先されます。

他に何が可能ですか?コード レベルの制限:

  1. すべてのパブリック php スクリプトで定数を定義します。

    define("MY_SECRET_CONSTANT", 1);

  2. すべてのプライベート php スクリプトで、コードの最初の行で定数が定義されているかどうかを確認します。

    if(!defined("MY_SECRET_CONSTANT")) { die("ファイルを直接開けません。"}

于 2014-04-27T09:04:20.370 に答える