Я хочу предоставить пользователям моего сайта произвольный доступ только для чтения к базе данных SQLite3, не позволяя им писать в базу данных или наносить какой-либо другой ущерб.Как?
Создание файла db только для чтения немного помогает, но такие команды, как "ATTACH", ".load" и ".output" позволяют людям читать / записывать другие файлы, которые могут быть не защищены.
Конечно, если бы я знал все такие команды, я бы просто отфильтровал их, но меня больше всего беспокоили команды, о которых я не думал.
Я кратко попытался изменитьИсходный код sqlite3 для запрета записи, но это сложнее, чем кажется: даже инструкция SELECT выполняет некоторые внутренние INSERTS / и т. д.
Примечание: Я рассмотрел DOSатакует, и уменьшит время процессора до 5 с или около того.Моя главная проблема - это повреждение файлов / «взлома», а не DOS.
chroot () может работать, но кажется чрезвычайным.
Мысли?
РЕДАКТИРОВАТЬ: Ого, я действительно спрашивал об этом 3+ года назад?
С тех пор Я на самом деле написал программу для этого.
, которая, на мой взгляд, достаточно безопасна (но я могу ошибаться).
Вот пример запроса.