Безопасность пользователя/пароля 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