
LuaJIT FFI bindings per libinjection, che forniscono rilevamento di SQL injection e XSS con API specifiche per il contesto per la sicurezza delle applicazioni web.
lua-resty-libinjection - Binding LuaJIT FFI per libinjection
Questa libreria è in sviluppo attivo ed è pronta per la produzione
Questa libreria fornisce binding FFI per libinjection, un tokenizer e analizzatore SQL/SQLi e XSS.
Installa questa libreria come faresti con qualsiasi altro modulo lua di OpenResty. Il file oggetto condiviso di libinjection deve trovarsi nel tuo lua_package_cpath, quindi dovresti creare un symlink o copiare il file .so nella posizione appropriata.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- API SQLi semplice
local issqli, fingerprint = libinjection.sqli(string)
-- sono forniti anche binding specifici per contesto
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
-- API XSS semplice
local isxss = libinjection.xss(string)
-- binding specifici per contesto
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)
}
sintassi: issqli, fingerprint = libinjection.sqli(string)
Data una stringa, restituisce un booleano issqli che indica se è stato rilevato SQLi, e una stringa fingerprint che rappresenta l'impronta libinjection rilevata. Nella maggior parte dei casi, questa è l'opzione preferibile; i binding API di secondo livello indicati di seguito possono essere leggermente più efficienti in contesti specifici.
sintassi: issqli, fingerprint = libinjection.sqli_noquote(string)
Come libinjection.sqli, nel contesto specifico di una stringa "così com'è".
sintassi: issqli, fingerprint = libinjection.sqli_singlequote(string)
Come libinjection.sqli, nel contesto specifico di una stringa tra apici singoli (').
sintassi: issqli, fingerprint = libinjection.sqli_doublelequote(string)
Come libinjection.sqli, nel contesto specifico di una stringa tra virgolette doppie (").
sintassi: isxss = libinjection.xss(string)
Versione ALPHA del rilevatore XSS. Data una stringa, restituisce un booleano isxss che indica se è stato rilevato XSS. Nella maggior parte dei casi, questa è l'opzione preferibile; i binding API di secondo livello indicati di seguito possono essere leggermente più efficienti in contesti specifici.
sintassi: isxss = libinjection.xss_data_state(string)
Come libinjection.xss, ma eseguito solo con il flag DATA_STATE.
sintassi: isxss = libinjection.xss_noquote(string)
Come libinjection.xss, ma eseguito solo con il flag VALUE_NO_QUOTE.
sintassi: isxss = libinjection.xss_singlequote(string)
Come libinjection.xss, ma eseguito solo con il flag VALUE_SINGLE_QUOTE.
sintassi: isxss = libinjection.xss_doublequote(string)
Come libinjection.xss, ma eseguito solo con il flag VALUE_DOUBLE_QUOTE.
sintassi: isxss = libinjection.xss_backquote(string)
Come libinjection.xss, ma eseguito solo con il flag VALUE_BACK_QUOTE.
Copyright 2017 Robert Paprocki
La ridistribuzione e l'uso in forma sorgente e binaria, con o senza modifiche, sono consentiti a condizione che siano soddisfatte le seguenti condizioni:
Le ridistribuzioni del codice sorgente devono conservare l'avviso di copyright sopra indicato, questo elenco di condizioni e il seguente disclaimer.
Le ridistribuzioni in forma binaria devono riprodurre l'avviso di copyright sopra indicato, questo elenco di condizioni e il seguente disclaimer nella documentazione e/o in altri materiali forniti con la distribuzione.
Né il nome del detentore del copyright né i nomi dei suoi contributori possono essere utilizzati per approvare o promuovere prodotti derivati da questo software senza specifica autorizzazione scritta preventiva.
QUESTO SOFTWARE È FORNITO DAI DETENTORI DEL COPYRIGHT E DAI CONTRIBUTORI "COSÌ COM'È" E QUALSIASI GARANZIA ESPRESSA O IMPLICITA, INCLUSI, MA NON LIMITATI A, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE SONO DECLINATE. IN NESSUN CASO IL DETENTORE DEL COPYRIGHT O I CONTRIBUTORI SARANNO RESPONSABILI PER QUALSIASI DANNO DIRETTO, INDIRETTO, INCIDENTALE, SPECIALE, ESEMPLARE O CONSEQUENZIALE (INCLUSI, MA NON LIMITATI A, ACQUISIZIONE DI BENI O SERVIZI SOSTITUTIVI; PERDITA DI UTILIZZO, DATI O PROFITTI; O INTERRUZIONE DELL'ATTIVITÀ) QUALUNQUE SIA LA CAUSA E SU QUALSIASI TEORIA DI RESPONSABILITÀ, SIA IN CONTRATTO, RESPONSABILITÀ OGGETTIVA O ILLECITO (INCLUSO NEGLIGENZA O ALTRO) DERIVANTE IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.
Segnala i bug creando un ticket tramite il tracker dei problemi di GitHub.