lua-resty-libinjection - libinjection 的 LuaJIT FFI 绑定
该库正在积极开发中,且已可用于生产环境
该库为 libinjection 提供 FFI 绑定,libinjection 是一个 SQL/SQLi 和 XSS 分词器及分析器。
像安装其他任何 OpenResty lua 模块一样安装此库。libinjection 共享对象文件必须位于你的 lua_package_cpath 中,因此你应该将 .so 文件符号链接或复制到适当的位置。
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- 简单的 SQLi API
local issqli, fingerprint = libinjection.sqli(string)
-- 也提供了特定上下文的绑定
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
-- 简单的 XSS API
local isxss = libinjection.xss(string)
-- 特定上下文的绑定
isxss = libinjection.xss_data_state(string)
isxss = libinjection.xss_noquote(string)
isxss = libinjection.xss_singlequote(string)
isxss = libinjection.xss_doublequote(string)
isxss = libinjection.xss_backquote(string)
}
语法: issqli, fingerprint = libinjection.sqli(string)
给定一个字符串,返回一个布尔值 issqli 表示是否检测到 SQLi,以及一个字符串 fingerprint 表示检测到的 libinjection 指纹。在大多数情况下,这是首选选项;下面提到的二级 API 绑定在特定上下文中可能略微更高效。
语法: issqli, fingerprint = libinjection.sqli_noquote(string)
与 libinjection.sqli 类似,但用于“原样”字符串的特定上下文。
语法: issqli, fingerprint = libinjection.sqli_singlequote(string)
与 libinjection.sqli 类似,但用于单引号(')字符串的特定上下文。
语法: issqli, fingerprint = libinjection.sqli_doublelequote(string)
与 libinjection.sqli 类似,但用于双引号(")字符串的特定上下文。
语法: isxss = libinjection.xss(string)
XSS 检测器的 ALPHA 版本。给定一个字符串,返回一个布尔值 isxss 表示是否检测到 XSS。在大多数情况下,这是首选选项;下面提到的二级 API 绑定在特定上下文中可能略微更高效。
语法: isxss = libinjection.xss_data_state(string)
与 libinjection.xss 类似,但仅使用 DATA_STATE 标志运行。
语法: isxss = libinjection.xss_noquote(string)
与 libinjection.xss 类似,但仅使用 VALUE_NO_QUOTE 标志运行。
语法: isxss = libinjection.xss_singlequote(string)
与 libinjection.xss 类似,但仅使用 VALUE_SINGLE_QUOTE 标志运行。
语法: isxss = libinjection.xss_doublequote(string)
与 libinjection.xss 类似,但仅使用 VALUE_DOUBLE_QUOTE 标志运行。
语法: isxss = libinjection.xss_backquote(string)
与 libinjection.xss 类似,但仅使用 VALUE_BACK_QUOTE 标志运行。
版权所有 2017 Robert Paprocki
允许以源代码和二进制形式重新分发和使用,无论是否经过修改,前提是满足以下条件:
源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。
二进制形式的再分发必须在提供的文档和/或其他材料中重现上述版权声明、此条件列表和以下免责声明。
未经事先书面许可,不得使用版权持有者或其贡献者的名称来认可或推广由此软件衍生的产品。
本软件由版权持有者和贡献者“按原样”提供,不提供任何明示或暗示的担保,包括但不限于对适销性和特定用途适用性的暗示担保。在任何情况下,版权持有者或贡献者均不对任何直接、间接、偶然、特殊、惩罚性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润的损失;或业务中断)承担责任,无论其原因如何,也不论是基于合同、严格责任或侵权行为(包括疏忽或其他方式)的任何责任理论,即使已被告知可能发生此类损害。
请通过 GitHub 问题跟踪器创建工单来报告错误。