11

私はPHPでデータベース駆動型アプリケーションのセットを書いています。これらのアプリケーションは、Linuxサーバー上で独自のユーザーとして実行されます。他のユーザーがシステムにアクセスすることもありますが、アクセスは非常に制御されています。他のサーバーにはまったくアクセスできません。また、DBIと私が作成した一連の関数を使用してデータベースにアクセスするPerlスクリプトを作成する必要がある開発者に、制限ストアドプロシージャAPIを公開します。

私の質問は、接続文字列を含む構成ファイルを保護するための最良の方法は何ですか?

ファイルに対して[4+]00の権限を持つ別のユーザーで十分ですか?それらを暗号化する必要がありますか?それは問題を別の場所に移しているように思われるので、暗号化キーをどこに保存するかについて心配します。Perl開発者は、データベースの実行権限しか持っていないため、独自の接続文字列が必要になることを理解しています。

4

3 に答える 3

8

マシンが本当に従来の Unix 方式で管理されており、J. Random ユーザーが常に root に su を要求していない場合は、ファイルシステムのパーミッションが最善の策であると言えます。誰かが不正なルート アクセスを取得した場合、接続文字列を "保護" するための暗号化の愚かさはありません。

「スクリプトユーザー」が所有する接続文字列を含むファイルをマークし、説明したようにアクセスを許可します。

(この例では、接続文字列を暗号化しても何も得られないことを理解してくれてありがとう。あいまいさによるセキュリティは非生産的です。)

于 2008-12-02T18:12:57.023 に答える
2

パスワード ストアへのアクセスを管理するのに役立つ無料の Apache モジュールへのリンクを次に示します。

http://uranus.it.swin.edu.au/~jn/linux/php/passwords.htm

私には少し手の込んだようで、mod_php の下で PHP を実行する必要があります。それでも、サーバーにアクセスできる許可されていない人がパスワードファイルを読み取ることができる可能性には対処していません.

ファイルのアクセス許可に頼る必要があり、許可されていない人がsudoPHP アプリケーションの UID やルートにアクセスできないことを信頼する必要があると思います。

于 2008-12-02T18:21:00.220 に答える
0

これまでの私の最善の解決策は、構成ファイルを暗号化されたパーティションに保存して、マシンに直接アクセスできる人がドライブを別の PC に接続してパスワードを引き出すことができないようにし、ファイル システムのアクセス許可を使用して、他の人が読み取れないようにすることでした。 OS自体の内部からファイル。

ただし、マシンに直接アクセスできる攻撃者に対してできることはあまりないことを理解する必要があります。データベースサーバー自体を実行している場合、データベース自体を変更できる場合、構成ファイルを保護してもあまり効果がありません。すべてが可能な限り安全であることを確認してください。おそらく大丈夫です。

于 2008-12-02T18:18:13.393 に答える