首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lua字符串(尝试)“}”附近的未完成字符串

Lua字符串(尝试)“}”附近的未完成字符串
EN

Stack Overflow用户
提问于 2015-03-01 15:50:57
回答 1查看 2.4K关注 0票数 2
代码语言:javascript
运行
复制
function escape_sqli(source)
    to_replace = {"'", '"'}
    replace_with = {"\'", '\"'}
    output = source
    for i = 1, table.getn(to_replace) do
        output = string.gsub(output, to_replace[i], replace_with[i])
    end
    return output
end

我尝试了上面的代码以逃避SQLis,但是当我试图编译它时,我得到了以下错误:

代码语言:javascript
运行
复制
Unfinished String near '"}'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 18:39:13

按照目前的情况,代码中没有语法错误。

不过,这是一个建议;来自string.gsub文档:

string.gsub (s,pattern,repl,n) ..。 如果repl是一个表,那么将使用第一个捕获作为键,查询每个匹配项的表。

您可以简单地按以下方式重新创建替换表:

代码语言:javascript
运行
复制
local replacements = { ['"'] = '\\"', ["'"] = "\\'" }

并在一个gsub调用中使用它:

代码语言:javascript
运行
复制
function escape_sqli(source)
    local replacements = { ['"'] = '\\"', ["'"] = "\\'" }
    return source:gsub( "['\"]", replacements ) -- or string.gsub( source, "['\"]", replacements )
end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28795538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档