
LuaJIT FFI bindings para libinjection, que proporcionan detección de inyección SQL y XSS con APIs específicas de contexto para la seguridad de aplicaciones web.
lua-resty-libinjection - Enlaces FFI LuaJIT para libinjection
Esta biblioteca está en desarrollo activo y está lista para producción
Esta biblioteca proporciona enlaces FFI para libinjection, un tokenizador y analizador de SQL/SQLi y XSS.
Instale esta biblioteca como lo haría con cualquier otro módulo lua de OpenResty. El archivo de objeto compartido de libinjection debe residir en su lua_package_cpath, por lo que debe crear un enlace simbólico o copiar el archivo .so a la ubicación adecuada.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- API SQLi simple
local issqli, fingerprint = libinjection.sqli(string)
-- también se proporcionan enlaces específicos de contexto
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
-- API XSS simple
local isxss = libinjection.xss(string)
-- enlaces específicos de contexto
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)
}
sintaxis: issqli, fingerprint = libinjection.sqli(string)
Dada una cadena, devuelve un booleano issqli que representa si se detectó SQLi, y una cadena fingerprint que representa la huella de libinjection detectada. En la mayoría de los casos, esta es la opción preferible; los enlaces de API de segundo nivel que se indican a continuación pueden ser ligeramente más eficientes en contextos específicos.
sintaxis: issqli, fingerprint = libinjection.sqli_noquote(string)
Igual que libinjection.sqli, en el contexto específico de una cadena "tal cual".
sintaxis: issqli, fingerprint = libinjection.sqli_singlequote(string)
Igual que libinjection.sqli, en el contexto específico de una cadena entre comillas simples (').
sintaxis: issqli, fingerprint = libinjection.sqli_doublelequote(string)
Igual que libinjection.sqli, en el contexto específico de una cadena entre comillas dobles (").
sintaxis: isxss = libinjection.xss(string)
Versión ALPHA del detector XSS. Dada una cadena, devuelve un booleano isxss que indica si se detectó XSS. En la mayoría de los casos, esta es la opción preferible; los enlaces de API de segundo nivel que se indican a continuación pueden ser ligeramente más eficientes en contextos específicos.
sintaxis: isxss = libinjection.xss_data_state(string)
Igual que libinjection.xss, pero ejecutado solo con la bandera DATA_STATE.
sintaxis: isxss = libinjection.xss_noquote(string)
Igual que libinjection.xss, pero ejecutado solo con la bandera VALUE_NO_QUOTE.
sintaxis: isxss = libinjection.xss_singlequote(string)
Igual que libinjection.xss, pero ejecutado solo con la bandera VALUE_SINGLE_QUOTE.
sintaxis: isxss = libinjection.xss_doublequote(string)
Igual que libinjection.xss, pero ejecutado solo con la bandera VALUE_DOUBLE_QUOTE.
sintaxis: isxss = libinjection.xss_backquote(string)
Igual que libinjection.xss, pero ejecutado solo con la bandera VALUE_BACK_QUOTE.
Copyright 2017 Robert Paprocki
Se permite la redistribución y el uso en formas de código fuente y binarias, con o sin modificaciones, siempre que se cumplan las siguientes condiciones:
Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad.
Las redistribuciones en forma binaria deben reproducir el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad en la documentación y/u otros materiales proporcionados con la distribución.
Ni el nombre del titular de los derechos de autor ni los nombres de sus colaboradores pueden utilizarse para respaldar o promocionar productos derivados de este software sin un permiso previo por escrito específico.
ESTE SOFTWARE ES PROPORCIONADO POR LOS TITULARES DE LOS DERECHOS DE AUTOR Y COLABORADORES "TAL CUAL" Y SE RENUNCIA A CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR. EN NINGÚN CASO EL TITULAR DE LOS DERECHOS DE AUTOR O LOS COLABORADORES SERÁN RESPONSABLES DE NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; LA PÉRDIDA DE USO, DATOS O BENEFICIOS; O LA INTERRUPCIÓN DEL NEGOCIO) CUALQUIERA QUE SEA LA CAUSA Y SOBRE CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA POR CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA U OTRA) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE HA ADVERTIDO DE LA POSIBILIDAD DE DICHOS DAÑOS.
Informe los errores creando un ticket con el rastreador de problemas de GitHub.