-4

mysql にアクセスする php スクリプトがあります。それらをフォルダー(SourceFiles)に入れています。ユーザーがこれらのスクリプト (および mysql データベース) を直接指定できないようにしたいと考えています。これらのスクリプトにアクセスするログイン設定があり、すべて機能しますが、ユーザーはファイルを直接指定することもできます。

public_html 以外のスクリプトに投稿できないため、フォルダーを public_html の上に移動しても機能しません。

.htaccess を使用してフォルダーを保護することは機能しません。これは、すべてのユーザーが保護されたフォルダーにアクセスする必要があるためです。

ユーザーがログインを介してそのフォルダー内のphpスクリプトにのみアクセスできるようにするにはどうすればよいですか(現在phpでコーディングしています)。

4

3 に答える 3

0

これは、OOP php の前に行った方法です。

メイン アプリケーションのエントリ ポイントで:

define('ACCESS',1);

すべての保護されたスクリプト:

if (!defined(ACCESS)) exit;

したがって、ユーザーが「保護された」ファイルに直接アクセスしても、それらは実行されません。

編集

すでにログイン システムを作成されているようですが、それを使用してみませんか? ユーザーがそのスクリプトへのアクセスを許可されているかどうかを定義する $_SESSION 変数に保存します.....

于 2012-12-14T23:55:37.683 に答える
0

私は個人的に追加POSTまたはGET

$protected = ($_GET['p']) ? $_GET['p'] : $_POST['p']
if ($protected != 'a') { header('location:blah'); }  

保護されたページの上部にそのようなものを置いてください。

次回はこれを使おう

于 2012-12-14T23:46:54.657 に答える
0

このコードを各ファイルの先頭に配置するだけです。

/***************DO NOT ALLOW DIRECT ACCESS************************************/
if ( (strpos( strtolower( $_SERVER[ 'SCRIPT_NAME' ] ), strtolower( basename( __FILE__ ) ) ) ) !== FALSE ) { // NOT FALSE if the script's file name is found in the URL 
  header( 'HTTP/1.0 403 Forbidden' );
  die( '<h2>Direct access to this page is not allowed.</h2>' );
}
/*****************************************************************************/
于 2012-12-15T03:18:42.027 に答える