
محلل رموز وتحليل نحوي لـ SQL / SQLI
محلل ومحلل لمحلل رموز SQL / SQLI. لـ
انظر https://www.client9.com/ للحصول على التفاصيل والعروض التقديمية.
مثال بسيط:
#include <stdio.h>
#include <strings.h>
#include <errno.h>
#include "libinjection.h"
#include "libinjection_sqli.h"
int main(int argc, const char* argv[])
{
struct libinjection_sqli_state state;
int issqli;
const char* input = argv[1];
size_t slen = strlen(input);
/* in real-world, you would url-decode the input, etc */
libinjection_sqli_init(&state, input, slen, FLAG_NONE);
issqli = libinjection_is_sqli(&state);
if (issqli) {
fprintf(stderr, "sqli detected with fingerprint of '%s'\n", state.fingerprint);
}
return issqli;
}
$ gcc -Wall -Wextra examples.c libinjection_sqli.c
$ ./a.out "-1' and 1=1 union/* foo */select load_file('/etc/passwd')--"
sqli detected with fingerprint of 's&1UE'
عينات أكثر تقدمًا:
انظر CHANGELOG للحصول على التفاصيل.
يتم سرد الإصدارات على أنها "رئيسي.ثانوي.نقطة"
التغييرات الرئيسية هي تغييرات كبيرة في API و/أو تنسيق البصمة. ستحتاج التطبيقات إلى إعادة الترجمة و/أو إعادة الهيكلة.
التغييرات الثانوية هي تغييرات في كود C. قد تشمل هذه:
إصدارات النقطة هي تغييرات بيانات بحتة. يمكن تطبيقها بأمان.
نتائج التكامل المستمر في https://travis-ci.org/client9/libinjection تختبر ما يلي:
حقوق الطبع والنشر (c) 2012-2016 Nick Galbreath
مرخص بموجب ترخيص المصدر المفتوح القياسي BSD 3-Clause. انظر COPYING للحصول على التفاصيل.
يحتوي دليل src على كل شيء، ولكن تحتاج فقط إلى نسخ ما يلي إلى شجرة المصدر الخاصة بك: