gpt4 book ai didi

mysql - 清理 prosody lua 模块中的 sql 输入

转载 作者:行者123 更新时间:2023-11-29 12:26:46 26 4
gpt4 key购买 nike

我想要 prosody 从我的 mysql 数据库中读取用户名和密码。Prosody 提供 module我想编辑它可以从sql数据库获取这些信息。

我的问题是:这段lua代码如何防止sql注入(inject)?我在 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注入(inject)风险。只有getsql第一个参数中的sql被视为sql。其他参数仅被视为数据。

关于mysql - 清理 prosody lua 模块中的 sql 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28198606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com