[![Грамматика MySQL на ANTLR 4][1]][2]
[Межсетевой экран уровня приложений][3] предназначен для анализа и фильтрации трафика в отношении какого-либо приложения или класса приложений, например [веб-приложений][4] или [СУБД][5]. При его построении возникает необходимость _разговаривать_ на языке этого приложения. Для реляционной СУБД таким языком становится диалект SQL. Предположим, что необходимо построить межсетевой экран для СУБД. В этом случае потребуется распознавать и анализировать предложения SQL для принятия решения об их соответствии заданной политике безопасности. В зависимости от решаемых задач (например, обнаружение атак типа SQL-инъекция, управление доступом, корреляция SQL- и HTTP-запросов) будет необходима та или иная глубина анализа SQL. Так или иначе, потребуется выполнять лексический, синтаксический и семантический анализ предложений SQL.
[Читать дальше →][6]
[1]:
https://habrastorage.org/webt/59/d4/c9/59d4c94d20b25300224783.jpeg
[2]:
https://habrastorage.org/webt/59/d4/c9/59d4c94d20b25300224783.jpeg
[3]:
https://en.wikipedia.org/wiki/Application_firewall
[4]:
https://habrahabr.ru/company/pt/blog/269165/
[5]:
https://speakerdeck.com/dnkolegov/database-firewall-from-scratch
[6]:
https://habrahabr.ru/post/339336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut