2011-12-24 20 views
0

こんにちは私はデータベースを更新するファイルを持っています。私はcronの仕事のためにそれを使用しますが、誰かが次のようにそれにアクセスする場合にも機能します:http://myweb.com/files/file.phpWebサーバー上のファイルにアクセスするユーザーを制限するにはどうすればよいですか?

そして、私はユーザーがそれにアクセスしてデータベースを混乱させるのを懸念しています。ユーザーから隠す方法はありますか?それを編集してcronジョブで実行できるようにしておきますか?

答えて

3

ウェブにアクセスできないディレクトリに保管してください。それを現在の場所に保持したい場合は、コード内で、ブラウザまたは(ブラウザを使って)呼び出されていることを確認するためのチェックを追加できます(user-agent、referrerなどを使用します)。クローラによってエラーメッセージが表示され、それ以外の場合は実行されます。

+0

私のウェブサイトのファイルはすべて/ root /ディレクトリにありますので、このファイルを外に置いてください。 – Ilja

+0

はい。あなたのWebアクセス可能なディレクトリが/ root /なら、同じレベル(例えば/ cron /)にディレクトリを作成し、そこにcronファイルを置きます。ウェブを介してアクセスすることはできません。 – Virendra

+0

@SergeiTulentsevいいえ、ブラウザまたはクローラによって呼び出された場合、エラーメッセージが表示されます。これを反映するようにソリューションを更新しました。 – Virendra

1

あなたに役立ついくつかの秘訣があります。

  1. REMOTE_IPを確認できます。それがローカルホストでなければ、死ぬ。

  2. 特別な「秘密」パラメータが渡されることを確認できます。 http://myweb.com/files/file.php?access_key=6rNPY6PhXPDfのように。それが存在しないか無効である場合、死ぬ。あなたはそれを解決する方法ウェブを介してアクセスすることはできませんフォルダ内の

  3. 置き、このスクリプトを(それがあなたのWWWルートの外に、である)

2

は、ホスティング環境に依存しますが、必要がある場合httpアクセスが可能で、Apache Webサーバーを使用している場合は、.htaccessファイルでアクセス権を設定できます。 IISを使用する場合は、ファイルのアクセス許可を構成し、IISマネージャーでアクセス権を構成します。ところで、最高のソリューションと最も安全なのは、ファイルをパブリックエリアから遠ざけて保管し、cronジョブから直接ファイルを呼び出すことです。