Безопасность пользователя/пароля sqlite

Я разрабатываю простой веб-сайт, и я пытаюсь создать базу данных sqlite. В отличие от MySQL, когда вы подключаетесь к db, вы не говорите, а пользователь/пароль и с MySQL вы делаете.

Таким образом, любой может получить к нему доступ. Разве это не отверстие безопасности для хранения конфиденциальной информации?

И даже скрывая ваш db.sqlite, не должно быть так сложно запросить этот db из сторонней программы/сети, чтобы получить информацию.

Спасибо за ваше время.

Ответ 1

sqlite полагается на права доступа к файлам для защиты данных, поскольку вы упомянули, что для них не требуется вход в систему. От IBM

SQLite не имеет понятия учетных записей пользователей и вместо этого полагается на файловую систему для всех разрешений базы данных. Это затрудняет соблюдение квот хранилища и невозможность применения прав пользователей.

Способ защиты вашей базы данных состоит в том, чтобы установить права доступа к файлам, чтобы только определенные пользователи могли получить доступ к данным. Если вы работаете с веб-сайтом в Linux, вы можете установить их с помощью chmod. Как правило, вы настраиваете веб-сервер для работы под своим собственным пользователем, таким как www-data, а затем ограничивает доступ к файлу sqlite только этому пользователю. Например:

chown www-data database.db    # set ownership of the database.db file.
chmod 600 database.db         # allow only read-write by the owner.

Это предотвращает чтение базы данных сторонними программами или любыми внешними сторонами за счет обеспечения безопасности файловой системы.

Ответ 2

Таким образом, любой может получить к нему доступ. Разве это не отверстие безопасности для хранения конфиденциальной информации?

Как говорили другие, это была не цель дизайна для пользователей SQLite. У них были другие цели, например, возможность вставлять код базы данных непосредственно в ваше приложение.

Вы можете защитить паролем и зашифровать базу данных SQLite, но вам нужно использовать SQLCipher.

Ответ 3

Предыдущие ответы отчасти верны. У вас могут быть базы данных, требующие проверки подлинности, но вам придется скомпилировать SQLite отдельно от PHP.

http://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt

Ответ 4

В дополнение к тому, что было сказано, вы можете защитить свою базу данных на своем веб-сервере, выполнив одно из следующих действий:

  • поместите файл базы данных за пределы вашего (веб-) документа root
  • заблокировать доступ к файлу, то есть через .htaccess на серверах apache