小巧。快速。可靠。
三者选其二。

SQLite C 接口

启用或禁用扩展加载

int sqlite3_enable_load_extension(sqlite3 *db, int onoff);

为了避免在无法处理扩展加载的旧应用程序中打开安全漏洞,并作为一种在评估用户输入的 SQL 时禁用扩展加载的方法,提供了以下 API 来打开或关闭sqlite3_load_extension()机制。

默认情况下,扩展加载处于关闭状态。使用 onoff==1 调用 sqlite3_enable_load_extension() 函数以打开扩展加载,使用 onoff==0 调用它以再次关闭它。

此接口同时启用或禁用 C-API sqlite3_load_extension() 和 SQL 函数 load_extension()。使用 sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,..) 来仅启用或禁用 C-API。

安全警告:建议使用 SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION 方法而不是此接口来启用扩展加载,以便load_extension() SQL 函数保持禁用状态。这将防止 SQL 注入攻击者访问扩展加载功能。

另请参阅对象常量函数列表。