他のユーザーとしてPHPファイルを安全に実行するには?

他のユーザーとしてPHPファイルを安全に実行するには?

セキュリティの問題に関連しているので、私の考えが正しいことを確認したいと思います。

私たちは、db2データベースを使用するWebベースのアプリケーションを持っています。 db2はdb2inst1このユーザーとして実行されます。

これで、Webアプリケーションのユーザーがdb2バックアップ・イメージをplayschoolと呼ばれるデータベースに復元できるようにしたいです。このゲームスクールを使用すると、本番データベースに害を与えることなく「プレイ」することができます。これを行うには、db2restorePHP関数を介してPHPスクリプトを実行する必要がありますexec()

十分安全ですか?以下の条件では、誰もPHPユーザーとしてdb2コマンドを乱用または実行できないことを確認してください。

  • この行を次に追加します。/etc/sudoers

    php ALL=(db2inst1) NOPASSWD: /opt/eduserver/bin/db2restore
    
  • 次に、PHPスクリプトdb2restoreでこのコマンドを実行します。

    exec('sudo -u db2inst1 /opt/eduserver/bin/db2restore');
    

ノート

  • すべてのエンドユーザーがWebインターフェースを介してdb2restoreを実行する権限を持っているわけではありません。
  • エンドユーザーはサーバーのコマンドラインにアクセスできません。
  • Webサーバーを介してdb2restoreにアクセスできません。

ベストアンサー1

私はこれに本質的に間違ったことがないと思います。注目すべき唯一のことは、例えば、db2restoreファイルがルートではなくdb2inst1に属している場合、誰かがdb2restoreのコンテンツでゲームをプレイできることです。

また、このPlayschoolデータベースが本番システムにないとします。もしそうなら、開発者が本番データベースにログインしているなら、これは悪い考えです。

通常、データベースへのアクセスを許可するときは、常にデータベースにユーザーアカウントを作成し、その特定のユーザーアカウントに特定の機能(追加、削除など)を付与します。

おすすめ記事