2013-05-20 16 views
11

Ich entwickle eine einfache Website und ich versuche eine SQLite-Datenbank. Im Gegensatz zu MySQL, wenn Sie eine Verbindung zu einer db herstellen, sagen Sie nicht und Benutzer/Passwort, und mit MySQL Sie tun.sqlite Benutzer/Passwort Sicherheit

So kann jeder darauf zugreifen. Ist es nicht ein Sicherheitsloch, um vertrauliche Informationen zu behalten?

Und sogar Ihre db.sqlite versteckt, sollte es nicht so schwer sein, diese db von einem Drittanbieter-Programm/Web abzufragen, um Informationen zu erhalten.

Danke für Ihre Zeit.

+0

Es ist immerhin entwickelt, um eine * leicht * Datenbank zu sein, ohne die Aufblähung und/oder Bequemlichkeit von Full-Scale-Lösungen - daher die "Lite" in "SQLite". – Piskvor

Antwort

12

sqlite verlässt sich auf Dateiberechtigungen, um die Daten zu sichern. Wie Sie bereits erwähnt haben, ist keine Anmeldung erforderlich. Von IBM

SQLite hat kein Konzept von Benutzerkonten und stattdessen stützt sich das Dateisystem auf alle Datenbankberechtigungen. Dies erschweren die Durchsetzung von Speicherkontingenten und erzwingt die Durchsetzung von Benutzerrechten.

Sie sichern Ihre Datenbank so, dass Dateiberechtigungen festgelegt werden, sodass nur bestimmte Benutzer auf die Daten zugreifen können. Wenn Sie eine Website unter Linux ausführen, können Sie diese unter Verwendung von chmod festlegen. In der Regel legen Sie fest, dass der Webserver unter seinem eigenen Benutzer ausgeführt wird, und beschränken Sie den Zugriff auf die SQLite-Datei nur auf diesen Benutzer.

Dies verhindert, dass Drittanbieterprogramme oder externe Parteien die Datenbank lesen, indem sie die Sicherheit des Dateisystems nutzen.

+0

Es gibt eine Sache, die man tun kann, um die Sicherheit ein wenig zu verbessern, verwenden Sie eine der Verschlüsselungs-Erweiterungen für SQLite. Aber das war es schon. – schlenk

2

So kann jeder darauf zugreifen. Ist es nicht ein Sicherheitsloch, um vertrauliche Informationen zu behalten?

Wie andere gesagt haben, war es kein Designziel der SQLite-Leute. Sie hatten andere Ziele, wie den Datenbankcode direkt in Ihre App einbetten zu können.

Sie können die SQLite-Datenbank mit einem Kennwort schützen und verschlüsseln, aber Sie müssen SQLCipher verwenden.

1

Zusätzlich zu dem, was gesagt worden ist, können Sie Ihre Datenbank auf Ihrem Webserver, indem Sie einen der folliwing sichern können:

  • Ort, um die Datenbank-Datei außerhalb des (Web-) Dokumenten-Stamm
  • Block Zugriff auf die Datei, dh über .htaccess auf apache-Servern
Verwandte Themen