Skip to content

DoManhQuang/mysql-parser-anltrv4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySQL Parser Using Antlr

Vui một chút :D

img0

Nếu phải kiểm tra cú pháp câu truy vấn SQL trước khi summit lên server có 100 dòng hoặc 1000 dòng hoặc nhiều hơn thế bạn sẽ làm gì?

Tại sao nên sử dụng Antlr ?

  • Mã nguồn mở
  • Kiểm tra cú pháp truy vấn SQL trước khi summit lên server.
  • Kiểm tra mã độc trong SQL, SQL Injection. (Chú ý: có một số bài báo nói vẫn có thể kiểm tra được riêng đoạn này mình chưa test được mong các bạn góp ý thêm)
  • ANTLR tạo ra cây phân tích cú pháp thông qua việc đệ quy và có báo cáo lỗi tốt gần như "ngay lập tức".
  • Trình phân tích cú pháp được tạo bởi ANTLR sẽ phát hiện được lỗi ngay tại vị trí sai nên việc gỡ lỗi SQL trở nên dễ dàng hơn.
  • Hỗ trợ các ngôn ngữ : Java, Python, C#, JavaScript, C++,...

Nhược điểm :

  • Cấu trúc Antlr khá phức tạp, chúng ta cần thực hành ví dụ để có thể hiểu rõ hơn thay vì chỉ học lý thuyết.
  • Cấu trúc Antlr rất khó để gỡ lỗi.

Ví dụ minh họa

  • Mô tả kiểm tra câu truy vấn SQL cơ bản

img1

  • Phát hiện SQL Injection

img2

Hướng dẫn sử dụng

Download

    git clone https://github.com/DoManhQuang/mysql-parser-anltrv4.git

Sử dụng project maven trong intellij

    Maven Lifecyle clean
    Maven Plugins antlr4:antlr4
    Maven Plugins jar:jar    
    Maven Lifecyle install

Run main & testcase

    cd src/main/java/antlr4/mysql
    run Main
    cd src/main/java/antlr4/mysql
    run UnitTestCaseMySql

Thư viện testcase

    cd src/main/resources/samples
    ls

About

mysql-parser-anltrv4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published