
LuaJIT-FFI-Bindungen für libinjection, die SQL-Injection- und XSS-Erkennung mit kontextspezifischen APIs für die Sicherheit von Webanwendungen bereitstellen.
lua-resty-libinjection - LuaJIT-FFI-Bindungen für libinjection
Diese Bibliothek befindet sich in aktiver Entwicklung und ist produktionsreif
Diese Bibliothek stellt FFI-Bindungen für libinjection, einen SQL/SQLi- und XSS-Tokenizer und -Analysator, bereit.
Installieren Sie diese Bibliothek wie jedes andere OpenResty-Lua-Modul. Die Shared-Object-Datei von libinjection muss in Ihrem lua_package_cpath liegen. Sie sollten die .so-Datei daher an den entsprechenden Speicherort verlinken oder kopieren.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- einfache SQLi-API
local issqli, fingerprint = libinjection.sqli(string)
-- kontextspezifische Bindungen werden ebenfalls bereitgestellt
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
-- einfache XSS-API
local isxss = libinjection.xss(string)
-- kontextspezifische Bindungen
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)
}
Syntax: issqli, fingerprint = libinjection.sqli(string)
Gibt für eine Zeichenkette einen booleschen Wert issqli zurück, der angibt, ob SQLi erkannt wurde, sowie eine Zeichenkette fingerprint, die den erkannten libinjection-Fingerprint darstellt. In den meisten Fällen ist dies die bevorzugte Option; die unten genannten Bindungen der zweiten Ebene können in bestimmten Kontexten geringfügig effizienter sein.
Syntax: issqli, fingerprint = libinjection.sqli_noquote(string)
Wie libinjection.sqli, im spezifischen Kontext einer "unveränderten" Zeichenkette.
Syntax: issqli, fingerprint = libinjection.sqli_singlequote(string)
Wie libinjection.sqli, im spezifischen Kontext einer in einfache Anführungszeichen (') gesetzten Zeichenkette.
Syntax: issqli, fingerprint = libinjection.sqli_doublelequote(string)
Wie libinjection.sqli, im spezifischen Kontext einer in doppelte Anführungszeichen (") gesetzten Zeichenkette.
Syntax: isxss = libinjection.xss(string)
ALPHA-Version des XSS-Erkenners. Gibt für eine Zeichenkette einen booleschen Wert isxss zurück, der angibt, ob XSS erkannt wurde. In den meisten Fällen ist dies die bevorzugte Option; die unten genannten Bindungen der zweiten Ebene können in bestimmten Kontexten geringfügig effizienter sein.
Syntax: isxss = libinjection.xss_data_state(string)
Wie libinjection.xss, jedoch nur mit dem DATA_STATE-Flag ausgeführt.
Syntax: isxss = libinjection.xss_noquote(string)
Wie libinjection.xss, jedoch nur mit dem VALUE_NO_QUOTE-Flag ausgeführt.
Syntax: isxss = libinjection.xss_singlequote(string)
Wie libinjection.xss, jedoch nur mit dem VALUE_SINGLE_QUOTE-Flag ausgeführt.
Syntax: isxss = libinjection.xss_doublequote(string)
Wie libinjection.xss, jedoch nur mit dem VALUE_DOUBLE_QUOTE-Flag ausgeführt.
Syntax: isxss = libinjection.xss_backquote(string)
Wie libinjection.xss, jedoch nur mit dem VALUE_BACK_QUOTE-Flag ausgeführt.
Copyright 2017 Robert Paprocki
Die Weiterverwendung und Verbreitung in Quell- und Binärform, mit oder ohne Änderungen, ist unter den folgenden Bedingungen gestattet:
Weiterverbreitungen des Quellcodes müssen den obigen Urheberrechtshinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss enthalten.
Weiterverbreitungen in Binärform müssen den obigen Urheberrechtshinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit der Verteilung bereitgestellt werden, wiedergeben.
Weder der Name des Urheberrechtsinhabers noch die Namen seiner Mitwirkenden dürfen ohne vorherige schriftliche Genehmigung zur Unterstützung oder Bewerbung von Produkten verwendet werden, die aus dieser Software abgeleitet wurden.
DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN "WIE BESEHEN" BEREITGESTELLT, UND JEGLICHE AUSDRÜCKLICHE ODER IMPLIZITE GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, DIE IMPLIZITEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN AUSGESCHLOSSEN. IN KEINEM FALL SIND DER URHEBERRECHTSINHABER ODER DIE MITWIRKENDEN HAFTBAR FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; NUTZUNGSAUSFALL, DATENVERLUST ODER GEWINNVERLUST; ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND AUF JEDER HAFTUNGSTHEORIE, OB IM VERTRAG, STREIFER HAFTUNG ODER UNERLAUBTER HANDLUNG (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
Bitte melden Sie Fehler, indem Sie ein Ticket über den GitHub-Issue-Tracker erstellen.