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