![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эти константы могут быть OR вместе с
предпочтительным кодированием текста
как четвертый аргумент для
sqlite3_create_function(),
sqlite3_create_function16() или
sqlite3_create_function_v2(). SQLITE_DIRECTONLY рекомендуется для любой
созданной приложением функции SQL,
у которой есть побочные эффекты, или это могло бы потенциально пропустить
уязвимую информацию. Это предотвратит нападения, в которых применение
обмануто в использование файла базы данных, которому изменили его схему
тайно, чтобы вызвать определенную применением функцию с
режимами, которые вредны.
Некоторые люди говорят, что хорошая практика, чтобы установить
SQLITE_DIRECTONLY на всех
созданных приложением функциях SQL,
независимо от того, являются ли они чувствительными для
безопасности, поскольку выполнение этого препятствует тому, чтобы те функции
использовались в схеме базы данных, и таким образом гарантирует, что база
данных может быть просмотрена и изменена, используя универсальные
инструменты (такие, как CLI),
у которых нет доступа к определенным применением функциям. SQLITE_INNOCUOUS аналог SQLITE_DETERMINISTIC, но не является точно
тем же самым. Функция random()
это пример функции, которая безвредна, но не детерминирована.
Некоторые усиленные настройки безопасности
(SQLITE_DBCONFIG_TRUSTED_SCHEMA
и PRAGMA trusted_schema=OFF)
отключают использование функций SQL в обзорах, триггерах
и структурах схемы, таких как
ограничения CHECK, DEFAULT,
индексы выражения,
частичные индексы и произведенные колонки,
если функция не помечена SQLITE_INNOCUOUS.
Большинство встроенных функций безвредно. Разработчикам рекомендуют избегать
использования флага SQLITE_INNOCUOUS для определенных применением функций,
если функция не была тщательно ревизована и свободна от потенциально
неблагоприятных безопасности побочных
эффектов и информационных утечек.
Choose any three.
SQLite C Interface
Флаги функции
#define SQLITE_DETERMINISTIC 0x000000800
#define SQLITE_DIRECTONLY 0x000080000
#define SQLITE_SUBTYPE 0x000100000
#define SQLITE_INNOCUOUS 0x000200000