You'll have to explain to the customer that "no matter what" carries too
much weight.  Are you going to protect against hardware failures?  Fire?
Floods?  Under what level would an acceptable failure be, or an
unacceptable failure?  What specifically is the user looking to break?  If
the user gets smart enough and starts modifying your schemas, all bets are
off, so, does that mean you have to start encrypting the database to keep
their fingers out of the cookie jar?  If files are being moved around and
the database is pushed off somewhere else, do you keep a secret backup of
the database somewhere else on the computer?  Upload it to the cloud behind
the users back?  Do you somehow write the database directly onto the EXE
and just make the user guess where the file is?

You can protect your software as best as you can acknowledging that users
are inventive and will break your software, so the best you can do is
defend against at least data entry issues, and perhaps, if you want to go
the extra mile, DO save out to the cloud somewhere else for backup
purposes.  But there is a limit to what you can do without building a
virtual Fort Knox around a simple phone book database application, and even
then you can't save the data in case of a meteor strike.  So sanitize your
data on any database transaction, ensure that anything being put in and
pulled out matches that of the constraint that the application expects (IE:
User enters a letter instead of a number.  Since SQLite will accept that,
when reading the data out, your app may freak out).

It is absolutely impossible to protect against EVERY contingency (Which is
what "No Matter What" means), so definitions are going to have to be laid
out about what the expectations are to be for failure defenses.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to