Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Rename the "security.html" document as "Defense Against Dark Arts". Add the additional recommendation to avoid memory-mapped I/O on untrusted database files. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
11d0259504e7ca5f7bc589e472757897 |
User & Date: | drh 2018-12-14 15:54:05.478 |
Context
2018-12-15
| ||
01:17 | Merge defense-against-dark-arts fixes from trunk. (check-in: a8707b40a7 user: drh tags: branch-3.26) | |
2018-12-14
| ||
19:01 | Fix typos in the defense-against-dark-arts document. (check-in: 94ad3e51e7 user: drh tags: trunk) | |
15:54 | Rename the "security.html" document as "Defense Against Dark Arts". Add the additional recommendation to avoid memory-mapped I/O on untrusted database files. (check-in: 11d0259504 user: drh tags: trunk) | |
2018-12-10
| ||
12:52 | Futher homepage enhancements. Improvements and typo fixes on secondary pages. (check-in: e6aa1d2d9a user: drh tags: trunk) | |
Changes
Changes to pages/security.in.
|
| | | > | > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <title>Defense Against Dark Arts</title> <tcl>hd_keywords security {attack resistance} \ {defense against dark arts}</tcl> <fancy_format> <h1>SQLite Always Validates Its Inputs</h1> <p> SQLite should never crash, overflow a buffer, leak memory, or exhibit any other harmful behavior, even with presented with maliciously malformed SQL inputs or database files. SQLite should always detected erroneous inputs and raise an error, not crash or corrupt memory. Any malfunction caused by an SQL input or database file is considered a serious bug and will be promptly addressed when brought to the attention of the SQLite developers. SQLite is extensively fuzz-tested to help ensure that it is resistant to these kinds of errors. <p> Nevertheless, bugs happen. If you are writing an application that sends untrusted SQL inputs or database files to SQLite, there are additional steps you can take to help reduce the attack surface and prevent zero-day exploits caused by undetected bugs. <h2>Untrusted SQL Inputs</h2> <p> Applications that accept untrusted SQL inputs should take the following precautions: <ol> |
︙ | ︙ | |||
41 42 43 44 45 46 47 | <h2>Untrusted SQLite Database Files</h2> <p>Applications that accept untrusted database files should do the following: <ol> <li value="3"><p> Run [PRAGMA integrity_check] or [PRAGMA quick_check] on the database | > | | > > > > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <h2>Untrusted SQLite Database Files</h2> <p>Applications that accept untrusted database files should do the following: <ol> <li value="3"><p> Run [PRAGMA integrity_check] or [PRAGMA quick_check] on the database as first SQL statement after opening the database files and prior to running any other SQL statements. Reject and refuse to process any database file containing errors. <li><p> Enable the [PRAGMA cell_size_check=ON] setting. <li><p> Do not enable memory-mapped I/O. In other words, make sure that [PRAGMA mmap_size=0]. </ol> <h1>Summary</h1> <p> The precautions above are not required in order to use SQLite safely with potentially hostile inputs. However, they do provide an extra layer of defense against zero-day exploits and are encouraged for applications that pass data from untrusted sources into SQLite. |