0

現在、RailsアプリケーションにMySQLを使用しています。私のdatabase.ymlには、次のものがあります。

production:
  adapter: mysql2
  database: application_name_production
  username: root
  password: password
  host: localhost

疑問に思っていますが、ユーザーrootとしてデータベースに接続しても大丈夫ですか?root以外の別のユーザーを使用するよりも安全性は低くなりますか?

4

3 に答える 3

3

これはプレーンテキストで保存されるので、そうです、非常に悪いことです。誰かがあなたのウェブサーバーにアクセスした場合、その人はパスワードを読み取ることができます. そしてねえ、それはおそらくシステム全体にアクセスするためのユーザーrootのパスワードと同じです:)

アプリケーション固有のデータベースのみを操作できるデータベース ユーザーを作成します。誰かがあなたの database.yml を盗んだ場合、そのデータだけが盗まれ、編集され、破壊される可能性があります。他の場所で使用されているパスワードは使用しないでください。

ご想像のとおり、ハッカーがシステムに侵入すると、自動化されたスクリプトを使用してただちに database.yml ファイルを検索します。したがって、システムに入ってから 1 秒以内に、彼はすべてのデータにアクセスできます。

于 2012-08-10T11:59:20.677 に答える
2

データベース (および任意のシステム) に対してのみ必要な権限のセットを持つ別のユーザーを持つことで、ハッカーに対する追加の手順が提供されます。

それでは、ハッカーの攻撃から回復する時間を節約するために、5 分かけて別のユーザーを作成してみませんか?

于 2012-08-10T12:11:16.660 に答える
1

root パスワード (システム、データベースなど) を教えることは、非常に悪いことです。それは、トム、ディック、ハリーのすべてに玄関の鍵のセットを渡すようなものです。

そのため、適切な権限を持つユーザーを作成するのに少し時間を費やしてください。これにより、システム、データベース、テーブル、および実行可能な操作の整合性を保護するという追加の利点が得られます。

私の意見では、Web サイトへのアクセスにはストアド プロシージャを使用し、ストアド プロシージャからの実行のみを許可します。これにより、カードがデータベースのチェストの近くに保持されるため、厄介なものが侵入してパフォーマンスを維持することができなくなります。結局、Web サイトのデータベースは最大の主張の 1 つです。

于 2012-08-10T12:23:27.070 に答える