Quiero otorgar a mis usuarios de sitios web acceso arbitrario de solo lectura a una base de datos SQLite3 , sin dejarlos escribir en la base de datos ni hacer ningún otro daño . ¿Cómo?Base de datos sqlite3 de solo lectura segura
Hacer el archivo db sólo lectura ayuda un poco, pero al igual que los comandos "ATTACH", ".load" y ".output" permiten a las personas para leer/escribir archivos de otros , que no pueden ser protegidos.
Por supuesto, si conociera todos estos comandos, simplemente me gustaría filtrar en contra de ellos, , pero me preocupan más los comandos que no he pensado.
traté brevemente para alterar el código fuente de sqlite3 para no permitir las escrituras, pero esto es más difícil de lo que parece: aunque la instrucción SELECT parece hacer algunas inserciones internas/etc.
Nota:he considerado ataques DOS, y tendrá ulimit cputime a 5s o algo. Mi principal preocupación es dañar los archivos/"piratería", no el DOS.
chroot() puede funcionar, pero parece extremo.
¿Pensamientos?
EDITAR: Guau, ¿realmente pregunté esto hace 3+ años?
Desde entonces, I've actually written a program to do this.
que creo que es razonablemente seguro (pero podría estar equivocado).
Supongo que realmente estoy buscando una "meta-solución" aquí. Por ejemplo, si ejecutara todo mi sistema fuera de un CD de solo lectura, no tendría que preocuparme por lo que sqlite3 puede/no puede hacer. Eso es demasiado extremo en mi caso, pero la idea general es que quiero encontrar una solución que funcione sin depender de las propiedades de sqlite3. – barrycarter