
LuaJIT FFI-привязки для libinjection, обеспечивающие обнаружение SQL-инъекций и XSS с контекстно-зависимыми API для безопасности веб-приложений.
lua-resty-libinjection — привязки LuaJIT FFI для libinjection
Эта библиотека находится в активной разработке и готова к использованию в production
Эта библиотека предоставляет привязки FFI для libinjection, токенизатора и анализатора SQL/SQLi и XSS.
Устанавливайте эту библиотеку так же, как и любой другой модуль OpenResty lua. Общий объектный файл libinjection должен находиться в вашем lua_package_cpath, поэтому вам следует создать символическую ссылку или скопировать файл .so в соответствующее место.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- простой API для SQLi
local issqli, fingerprint = libinjection.sqli(string)
-- также предоставляются привязки для конкретных контекстов
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
--простой API для XSS
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)
}
syntax: issqli, fingerprint = libinjection.sqli(string)
Принимая строку, возвращает логическое значение issqli, указывающее, была ли обнаружена SQLi, и строку fingerprint, представляющую обнаруженный отпечаток libinjection. В большинстве случаев это предпочтительный вариант; привязки API второго уровня, указанные ниже, могут быть немного более эффективными в конкретных контекстах.
syntax: issqli, fingerprint = libinjection.sqli_noquote(string)
Как и libinjection.sqli, но в конкретном контексте строки «как есть».
syntax: issqli, fingerprint = libinjection.sqli_singlequote(string)
Как и libinjection.sqli, но в конкретном контексте строки в одинарных кавычках (').
syntax: issqli, fingerprint = libinjection.sqli_doublelequote(string)
Как и libinjection.sqli, но в конкретном контексте строки в двойных кавычках (").
syntax: isxss = libinjection.xss(string)
ALPHA-версия детектора XSS. Принимая строку, возвращает логическое значение isxss, указывающее, был ли обнаружен XSS. В большинстве случаев это предпочтительный вариант; привязки API второго уровня, указанные ниже, могут быть немного более эффективными в конкретных контекстах.
syntax: isxss = libinjection.xss_data_state(string)
Как и libinjection.xss, но выполняется только с флагом DATA_STATE.
syntax: isxss = libinjection.xss_noquote(string)
Как и libinjection.xss, но выполняется только с флагом VALUE_NO_QUOTE.
syntax: isxss = libinjection.xss_singlequote(string)
Как и libinjection.xss, но выполняется только с флагом VALUE_SINGLE_QUOTE.
syntax: isxss = libinjection.xss_doublequote(string)
Как и libinjection.xss, но выполняется только с флагом VALUE_DOUBLE_QUOTE.
syntax: isxss = libinjection.xss_backquote(string)
Как и libinjection.xss, но выполняется только с флагом VALUE_BACK_QUOTE.
Copyright 2017 Robert Paprocki
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Пожалуйста, сообщайте об ошибках, создавая тикет через систему отслеживания проблем GitHub.