lua-resty-libinjection - libinjection 用 LuaJIT FFI バインディング
このライブラリは活発に開発中であり、本番環境で使用可能です
このライブラリは、SQL/SQLi および XSS のトークナイザー兼アナライザーである libinjection 用の FFI バインディングを提供します。
このライブラリは、他の 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)
文字列を指定すると、SQLi が検出されたかどうかを表すブール値 issqli と、検出された libinjection フィンガープリントを表す文字列 fingerprint を返します。ほとんどの場合、これが推奨されるオプションです。以下に記載されている第2レベルの 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 版です。文字列を指定すると、XSS が検出されたかどうかを示すブール値 isxss を返します。ほとんどの場合、これが推奨されるオプションです。以下に記載されている第2レベルの 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 フラグのみで実行します。
Copyright 2017 Robert Paprocki
ソース形式およびバイナリ形式での再配布および使用は、変更の有無にかかわらず、以下の条件を満たす場合に許可されます。
ソースコードの再配布は、上記の著作権表示、この条件リスト、および以下の免責事項を保持しなければなりません。
バイナリ形式での再配布は、上記の著作権表示、この条件リスト、および以下の免責事項を、配布物とともに提供される文書および/またはその他の資料に再掲しなければなりません。
著作権所有者の名前、およびその貢献者の名前は、書面による事前の許可なしに、本ソフトウェアから派生した製品を推奨または宣伝するために使用してはなりません。
本ソフトウェアは、著作権所有者および貢献者によって「現状のまま」提供され、商品性および特定目的への適合性に関する黙示の保証を含むがこれに限定されない、明示的または黙示的な一切の保証は否認されます。いかなる場合も、著作権所有者または貢献者は、直接的、間接的、偶発的、特別、懲罰的、または結果的な損害(代替商品またはサービスの調達、使用、データ、または利益の喪失、または事業の中断を含むがこれに限定されない)について、契約、厳格責任、または不法行為(過失またはその他を含む)のいずれの理論に基づいても、本ソフトウェアの使用から生じたいかなる方法においても、たとえその可能性が通知されていたとしても、責任を負いません。
バグは、GitHub のイシュートラッカーでチケットを作成して報告してください。