#

SQL Injection là gì? Cách ngăn chặn tấn công SQL Injection

 06/09/2022 - 14:00 Trịnh Duy Thanh

Hiện nay có rất nhiều các loại tấn công được sử dụng để khai thác và đánh cắp dữ liệu quan trọng từ người dùng hoặc các doanh nghiệp lớn.

Một trong số đó là SQL injection được sử dụng để đánh cắp các dữ liệu trong ứng dụng web.

Vậy cụ thể loại tấn công này là gì và cách ngăn chặn như thế nào? Hãy cùng BKHOST tìm hiểu ở bài viết dưới đây.

Đăng ký Gmail Doanh Nghiệp tại BKHOST

BKHOST đang có chương trình khuyến mại cực tốt cho khách hàng đăng ký dịch vụ Gmail Tên Miền Riêng:

  • Giảm giá lên đến 20%.
  • Giá chỉ từ 495k/5 mail.
  • Dung lượng lên đến 30GB/user.

Đăng ký ngay:

email theo tên miền google

SQL Injection là gì?

SQL injection la gi

SQL injection là một kỹ thuật sử dụng các chuỗi mã độc hại trong các truy vấn cơ sở dữ liệu nhắm vào các ứng dụng hoặc trang web sử dụng MySQL, Oracle và SQL Server. Cụ thể, kỹ thuật này sẽ thực hiện chèn thêm một đoạn mã SQL độc hại để cung cấp quyền truy cập vào các tài nguyên quan trọng.

SQL injection nằm trong danh sách 10 mối đe dọa hàng đầu của OWASP đối với bảo mật ứng dụng web. Hiện nay, nó càng được triển khai với các công cụ tự động thêm SQL khiến cho cuộc tấn công trở nên nguy hiểm hơn và gây nhiều thiệt hại hơn.

SQL Injection hoạt động như thế nào?

SQL injection thực thi trực tiếp trên cơ sở dữ liệu ứng dụng bằng cách sử dụng các truy vấn để chạy các lệnh của hệ điều hành. Trong đó, mỗi một truy vấn sẽ bao gồm một tập hợp các tham số dành cho các bản ghi chỉ định trả về khi người dùng thực hiện truy vấn bằng các biểu mẫu đầu vào.

Đầu tiên, SQL injection sẽ tìm hiểu về cách mà các cơ sở dữ liệu hoạt động bằng cách gửi nhiều giá trị ngẫu nhiên vào truy vấn để quan sát cách máy chủ phản hồi. Sau đó, hacker sẽ tạo ra một truy vấn khác để máy chủ phân tích và thực thi giống như lệnh SQL thông thường. Ngoài ra, SQL injection còn có thể xóa toàn bộ các cơ sở dữ liệu, xóa bản ghi, bỏ qua các bước xác thực thông tin hay thêm các dữ liệu không mong muốn.

Các loại tấn công SQL Injection phổ biến hiện nay

Một số loại SQL injection khác nhau được sử dụng phổ biến bao gồm:

SQLi in-band

SQLi in-band hay còn được gọi là SQLi cổ điển được sử dụng để khởi chạy các lỗi cơ sở dữ liệu và thu thập các kết quả từ cuộc tấn công đó. Loại tấn công này này hoạt động dựa trên hai kỹ thuật tấn công chính là error-based và Union-based.

  • Error-based sẽ tạo ra các thông báo lỗi tiết lộ thông tin về cấu trúc của cơ sở dữ liệu.
  • Union-based sử dụng các câu lệnh có sẵn để khai thác các hàm SQL Union. Hàm này được kết hợp các kết quả của nhiều truy vấn khác để gửi về một kết quả hoàn chỉnh.

SQLi Inferential

Inferential SQLi là một phương pháp mà kẻ tấn công sử dụng để gửi tải trọng dữ liệu đến máy chủ để theo dõi cách thức hoạt động của nó. Nếu như có vấn đề xảy ra trong cơ sở dữ liệu thì phản hồi của máy chủ sẽ cung cấp chúng cho kẻ tấn các manh mối cho mục tiêu tấn công.

SQLi Inferential có thể là Boolean sử dụng câu lệnh True hoặc False để thu thập các phản hồi. Hoặc nó có thể là SQLi Time-based được sử dụng để đặt khoảng thời gian phản hồi được chỉ định.

SQLi Out-of-band

Kẻ tấn công áp dụng SQLi Out-of-band trên hệ thống tên miền hoặc các yêu cầu HTTP để lấy dữ liệu. Tuy nhiên, nó chỉ khả thi khi Web Server chạy chậm hoặc trong trường hợp không thể thực thi SQLi in-band.

Các phương pháp ngăn chặn SQL Injection

Một SQL injection được thực hiện thành công khiến cho các dữ liệu cá nhân bị tiết lộ và đánh cắp bởi tin tặc. Vì thế, việc phát hiện và ngăn chặn SQL injection là vấn đề cần được quan tâm nhất hiện nay. WAF là một trong những công cụ dựa trên thư viện các chữ ký tấn công được sử dụng để chống lại SQL injection. Ngoài ra, còn có một số phương pháp được sử dụng để ngăn chặn một cuộc tấn công SQL injection như:

  • Chuyên gia DevOps, quản trị viên, nhóm phát triển phần mềm hay các nhóm CNTT khác cần được đào tạo bảo mật kỹ càng để có thể hiểu được cách cách SQL injection xảy ra.
  • Mọi thông tin đầu vào của người dùng được cung cấp trong truy vấn SQL đều có khả năng là nguyên nhân của cuộc tấn công SQL injection.
  • Thực hiện các bước xác thực và lọc các thông tin đầu vào của người dùng thông qua danh sách cho phép.
  • Thường xuyên cập nhật các phiên bản mới nhất của ứng dụng giúp khắc phục các phần mềm và ngôn ngữ lập trình lỗi.
  • Áp dụng các phương pháp phòng ngừa được xác nhận về khả năng bảo vệ chống lại các cuộc tấn công SQL injection. Cách tốt nhất để bảo vệ các ứng dụng web là thông qua xác thực đầu vào, các câu lệnh chuẩn bị và các truy vấn được tham số hóa.
  • Thường xuyên quét bảo mật cho các ứng dụng web để khắc phục một số lỗ hổng bảo mật tiềm ẩn trước khi chúng gây ra thiệt hại nghiêm trọng.

Tổng kết về SQL Injection

Như vậy, SQL injection là một cuộc tấn công dữ liệu nguy hiểm có thể xảy ra với bất kỳ đối tượng nào. Vì thế, người dùng hay các doanh nghiệp cần trang bị cho hệ thống bảo mật của mình các lớp khóa an toàn và hoàn thiện nhất để ngăn chặn các nguy cơ tấn công.

Nếu bạn có thắc mắc về SQL injection, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.


  • cách phòng chống sql injection
  • tấn công sql injection
  • sql injection là gì

Dịch vụ NVMe Hosting WordPress tốc độ cao

BKHOST đang có chương trình khuyến mãi cực tốt dành cho khách hàng đăng ký dịch vụ NVMe Hosting WordPress:

  • Giảm giá lên đến 40%.
  • Giá chỉ từ 23k/tháng.
  • Tặng gói bảo mật SSL Let’s Encrypt.

Đăng ký ngay:

hosting wordpress giá rẻ

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger
Góp ý cho chúng tôi