2010-11-28 12 views
2

コマンドラインからのリクエストに完全な許可を与えることはできますか?コマンドラインによるセキュリティ:それは良い考えですか? (PHP)

私の考えでは、このチェックを作ることだった。

if(isset($_SERVER['argc']) AND $_SERVER['argc']>=2) { 
    // it must be the admin, give him full authorization, no further checks needed. 
} else { 
    // normal web request, authentication needed. 
} 

はこの理にかなっていますか?

私は私のPHPスクリプトを実行するコマンドラインを使用して開始する前に知っておくべきことは何ですか?

答えて

1

サーバーに1人のユーザーしかいない場合のみ安全です。そうしないと、あなたはどちらかを行う必要があります。スクリプト

  • で正しいユーザーID用

    • チェックは、そのユーザ

    ためのスクリプトのみ実行してください

  • +0

    はいそれはLinuxで、私は唯一のユーザーです(今のところ)。ありがとう – HappyDeveloper

    1

    コマンドラインはあなたのWebアプリケーションを制御する場所としてはあまり適していません。あなたのアプリケーションは、HTML出力を表示します。人間はコンソールを見てもそれほど良くありません(JavaScriptは動作しません等)。

    コマンドラインから実行するときに異なる出力が生成されるようにすることはできますが、実際の問題としてはどうでしょうか?なぜ他のユーザーと同じようにWebから管理者を認証されないのですか?

    あなたはかかわらず、とにかくあなたのアプリに組み込まれた特別なバックドアを持つようにしたい場合は、私は(ウェブベースである)このような何かを示唆している:

    define('ADMIN_BACKDOOR', true); // comment out to disable 
    $is_admin = defined('ADMIN_BACKDOOR') && $_SERVER['REMOTE_ADDR'] == '127.0.0.1'; 
    

    これが悪用することは不可能にIMO隣にあり、かつそれはあなたに自然環境(ブラウザ)からの管理アクセスを許可します。

    +0

    (これは、Linuxサーバーを想定している)私はこのバックドアが必要なのは、Web経由でアクセスできないスクリプトを呼び出せ、自分自身を認証するためにログインする必要がないからです。私はサーバーを管理する経験がほとんどないので、私は専用サーバープランにサインアップしようとしています。私はコマンドラインがcronjobsをスクリプトにアクセスするための最良の方法だと思った。具体的には、クローラが時々クロールを開始する必要があります。私はコマンドラインが使用されているときに特別な出力設定をしています(例:例外はHTMLなしで表示されます) – HappyDeveloper

    +1

    "ウェブからアクセスできない"と説明してください。実際にアクセスできない場合は、認証に必要なものは何ですか?また、あなたが呼びたいスクリプトがあなたの「メイン」アプリケーションの一部であるという印象を受けました。彼らが特にcronによって呼び出されるようになっているなら、この方法は問題ありません。 – Jon

    +0

    Web経由でアクセスできないということは、彼らがWebrootの外にいることを意味し、私は最初の投稿で書いた小切手を渡す必要があります。さて、クロンの呼び名である限り、問題ありません。とにかく、私はまだこれらのプロセスをどのように処理するか分かりません。 cronによって呼び出されたスクリプトで何が起こっているのかをどのように視覚化できますか?ファイルログを通して?そして、もし私がしなければならないなら、それをどうやって止めるのですか? (私がこれについて別の話題を始める必要があるかどうか教えてください) – HappyDeveloper

    関連する問題