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 注入攻击者访问扩展加载功能。