
Liaisons FFI LuaJIT pour libinjection, offrant une détection des injections SQL et des XSS avec des API spécifiques au contexte pour la sécurité des applications web.
lua-resty-libinjection - Liaisons FFI LuaJIT pour libinjection
Cette bibliothèque est en développement actif et est prête pour la production
Cette bibliothèque fournit des liaisons FFI pour libinjection, un tokeniseur et analyseur SQL/SQLi et XSS.
Installez cette bibliothèque comme n'importe quel autre module lua OpenResty. Le fichier d'objet partagé libinjection doit se trouver dans votre lua_package_cpath, vous devez donc créer un lien symbolique ou copier le fichier .so vers l'emplacement approprié.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- API SQLi simple
local issqli, fingerprint = libinjection.sqli(string)
-- des liaisons spécifiques au contexte sont également fournies
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)
-- liaisons spécifiques au contexte
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)
}
syntaxe : issqli, fingerprint = libinjection.sqli(string)
Étant donné une chaîne, renvoie un booléen issqli indiquant si une injection SQLi a été détectée, et une chaîne fingerprint représentant l'empreinte libinjection détectée. Dans la plupart des cas, c'est l'option préférable ; les liaisons d'API de second niveau mentionnées ci-dessous peuvent être légèrement plus efficaces dans des contextes spécifiques.
syntaxe : issqli, fingerprint = libinjection.sqli_noquote(string)
Comme libinjection.sqli, dans le contexte spécifique d'une chaîne « telle quelle ».
syntaxe : issqli, fingerprint = libinjection.sqli_singlequote(string)
Comme libinjection.sqli, dans le contexte spécifique d'une chaîne entre guillemets simples (').
syntaxe : issqli, fingerprint = libinjection.sqli_doublelequote(string)
Comme libinjection.sqli, dans le contexte spécifique d'une chaîne entre guillemets doubles (").
syntaxe : isxss = libinjection.xss(string)
Version ALPHA du détecteur XSS. Étant donné une chaîne, renvoie un booléen isxss indiquant si une XSS a été détectée. Dans la plupart des cas, c'est l'option préférable ; les liaisons d'API de second niveau mentionnées ci-dessous peuvent être légèrement plus efficaces dans des contextes spécifiques.
syntaxe : isxss = libinjection.xss_data_state(string)
Comme libinjection.xss, mais exécuté avec uniquement le drapeau DATA_STATE.
syntaxe : isxss = libinjection.xss_noquote(string)
Comme libinjection.xss, mais exécuté avec uniquement le drapeau VALUE_NO_QUOTE.
syntaxe : isxss = libinjection.xss_singlequote(string)
Comme libinjection.xss, mais exécuté avec uniquement le drapeau VALUE_SINGLE_QUOTE.
syntaxe : isxss = libinjection.xss_doublequote(string)
Comme libinjection.xss, mais exécuté avec uniquement le drapeau VALUE_DOUBLE_QUOTE.
syntaxe : isxss = libinjection.xss_backquote(string)
Comme libinjection.xss, mais exécuté avec uniquement le drapeau VALUE_BACK_QUOTE.
Copyright 2017 Robert Paprocki
La redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies :
Les redistributions du code source doivent conserver l'avis de droit d'auteur ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante.
Les redistributions sous forme binaire doivent reproduire l'avis de droit d'auteur ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante dans la documentation et/ou les autres documents fournis avec la distribution.
Ni le nom du titulaire du droit d'auteur ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.
CE LOGICIEL EST FOURNI PAR LES TITULAIRES DU DROIT D'AUTEUR ET LES CONTRIBUTEURS « EN L'ÉTAT » ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADAPTATION À UN USAGE PARTICULIER SONT DÉCLINÉES. EN AUCUN CAS LE TITULAIRE DU DROIT D'AUTEUR OU LES CONTRIBUTEURS NE SERONT RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACHAT DE BIENS OU DE SERVICES DE SUBSTITUTION ; LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU L'INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QU'IL S'AGISSE D'UN CONTRAT, D'UNE RESPONSABILITÉ STRICTE OU D'UN DÉLIT (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE QUELQUE MANIÈRE QUE CE SOIT DE L'UTILISATION DE CE LOGICIEL, MÊME SI LA POSSIBILITÉ DE TELS DOMMAGES A ÉTÉ SIGNALÉE.
Veuillez signaler les bugs en créant un ticket via le suivi de problèmes GitHub.