2013-05-20 8 views
11

私は簡単なWebサイトを開発していますが、私はsqliteデータベースを試しています。 MySQLとは対照的に、dbに接続するときは、ユーザとパスワードは言わず、MySQLを使うとあなたはそうします。sqliteユーザー/パスワードセキュリティ

誰にでもアクセスできます。機密情報を保持するセキュリティホールではありませんか?

さらに、db.sqliteを隠していても、情報を取得するためにサードパーティ製のプログラム/ Webからこのdbをクエリするのは難しくありません。

お時間をいただきありがとうございます。

+0

膨大な、そして/またはフルスケールのソリューションの利便性 - それで、 "SQLite"の "lite"。 – Piskvor

答えて

12

sqliteは、データを保護するためのファイルアクセス権に依存しています。前述のとおり、ログインは必要ありません。 IBM

SQLiteには、ユーザーアカウントの概念はなく、代わりにすべてのデータベースアクセス許可のファイルシステムに依存しています。これにより、ストレージクォータの適用が難しくなり、ユーザーのアクセス許可が不可能になります。

データベースを保護する方法は、特定のユーザーだけがデータにアクセスできるようにファイルのアクセス許可を設定することです。 LinuxでWebサイトを稼働させている場合は、chmodを使用してこれらを設定できます。通常、Webサーバーを独自のユーザーで実行するように設定してから、sqliteファイルへのアクセスをそのユーザーに限定します。

これにより、ファイルシステムのセキュリティを活用して、サードパーティのプログラムや外部の関係者がデータベースを読み取ることを防ぐことができます。

+0

セキュリティを少し強化するためにできることが1つありますが、SQLiteの暗号化拡張機能の1つを使用してください。しかしそれはそれについてです。 – schlenk

2

誰にでもアクセスできます。機密情報を保持するセキュリティホールではありませんか?

他の人も言っているように、SQLiteの人々の設計目標ではありませんでした。彼らはあなたのアプリに直接データベースコードを埋め込むことができるような、他の目標を持っていました。

SQLiteデータベースをパスワードで保護して暗号化できますが、SQLCipherを使用する必要があります。

1

また言われているものに、あなたはfolliwingのいずれかを実行して、Webサーバー上のデータベースを保護することができます。

  • あなた(ウェブ)ドキュメントルートの外の場所データベースファイルを
  • apacheのサーバー上のファイルへ
  • ブロックアクセス、すなわち経由.htaccessの
  • 結局、なし、*軽量*データベースになるように設計されて