清理 sql 韵律 lua 模块中的输入
Sanitize sql input in prosody lua module
我想获取韵律以从我的 mysql 数据库中读取用户名和密码。
Prosody 提供了我想要编辑的 module,它可以从 sql 数据库中获取这些信息。
我的问题是:lua 代码如何防止 sql 注入?我在 lua 代码中找不到任何输入消毒剂。
它使用prepared statements。 sql包含参数的占位符,单独给出:
getsql("SELECT `password` FROM `authreg` WHERE `username`=? AND `realm`=?", username, module.host);
然后将语句和参数发送到数据库:
local stmt, err = connection:prepare(sql);
local ok, err = stmt:execute(...);
因为参数是单独发送的,所以 sql 注入的风险不同。只有 getsql
的第一个参数中的 sql 被视为 sql。其他参数仅作为数据处理。
我想获取韵律以从我的 mysql 数据库中读取用户名和密码。 Prosody 提供了我想要编辑的 module,它可以从 sql 数据库中获取这些信息。
我的问题是:lua 代码如何防止 sql 注入?我在 lua 代码中找不到任何输入消毒剂。
它使用prepared statements。 sql包含参数的占位符,单独给出:
getsql("SELECT `password` FROM `authreg` WHERE `username`=? AND `realm`=?", username, module.host);
然后将语句和参数发送到数据库:
local stmt, err = connection:prepare(sql);
local ok, err = stmt:execute(...);
因为参数是单独发送的,所以 sql 注入的风险不同。只有 getsql
的第一个参数中的 sql 被视为 sql。其他参数仅作为数据处理。