Sql Injection Là Gì? Hướng Dẫn Cách Ngăn Chặn Lỗ Hổng Bảo Mật
Có thể bạn quan tâm
- Sql injection là gì?
- Mức độ nguy hiểm của sql injection
- Cách thức hoạt động của lỗ hổng sql injection
- Cách ngăn chặn lỗ hổng bảo mật sql injection
Sql injection là một khái niệm quen thuộc với các lập trình viên bởi nó thuộc một trong những kiểu tấn công website nguy hiểm nhất hiện nay và gây ra nhiều thiệt hại cho các doanh nghiệp. Tuy nhiên, vẫn có nhiều người chưa nhận thức được sự nguy hiểm của nó.
Vì vậy, trong bài viết này, Bizfly sẽ giới thiệu đến bạn Sql injection là gì? Mức độ nguy hiểm và cách ngăn chặn lỗ hổng bảo mật này ra sao?
Sql injection là gì?
Sql injection (SQLi) là một kỹ thuật hack web bằng cách lợi dụng các lỗ hổng và truy vấn trong các kênh đầu vào của ứng dụng web để chèn thêm một đoạn SQL, làm sai lệch câu truy vấn ban đầu.
Mục đích nhằm khai thác, ăn cắp hay xáo trộn các thông tin, dữ liệu nằm trong phần phụ trợ của web - nơi có những dữ liệu có giá trị và nhạy cảm nhất.
Sql injection lợi dụng các lỗ hổng để ăn cắp hay xáo trộn các thông tin
Sql injection cho phép những kẻ tấn công website có khả năng thực hiện được các thao tác tương tự như một người quản trị web. Điều này không những gây cản trở sự hoạt động của ứng dụng mà thậm chí họ còn chiếm được quyền truy cập quản trị vào các máy chủ.
Mức độ nguy hiểm của sql injection
Nói một cách tổng quát nhất về Sql injection thì có lẽ bạn cũng đã nhận ra được phần nào mức độ nguy hiểm của nó. Tuy nhiên nó còn nguy hiểm hơn những gì ta nghĩ bởi những hậu quả mà nó gây ra rất lớn.
- Với Sql injection, hacker có thể dễ dàng truy cập vào một phần hay toàn bộ các dữ liệu có trong hệ thống và gây ra những thiệt hại lớn đến mức khổng lồ cho các ứng dụng web khi những dữ liệu trong database bị lộ ra ngoài.
- Sự nổi tiếng của Sql injection đối với các developer và hacker nằm ở tool tấn công Sql injection dành cho các “dân ngoại đạo" - những người không có chút kiến thức nào về lập trình.
- Ảnh hưởng vô cùng nghiêm trọng đến hình ảnh của doanh nghiệp khi các thông tin, dữ liệu của khách hàng bị tiết lộ. Khách hàng sẽ không còn tin tưởng và sẽ chuyển qua sử dụng dịch vụ của doanh nghiệp khác và dẫn đến sự phá sản của doanh nghiệp chủ.
- Lỗ hổng Sql injection cũng làm ảnh hưởng rất lớn đến khách hàng. Chỉ cần mật khẩu của một tài khoản bị lộ thì những tài khoản còn lại cũng sẽ bị lộ theo bởi họ thường sử dụng chung một mật khẩu cho nhiều tài khoản.
- Sự tấn công của Sql injection không chỉ giúp các hacker đọc được dữ liệu mà còn có thể chỉnh sửa được dữ liệu. Họ có thể lợi dụng điểm này để xoá toàn bộ dữ liệu và làm cho hệ thống web dừng hoạt động.
Cách thức hoạt động của lỗ hổng sql injection
Để giúp bạn có thể hiểu hơn Sql injection và tìm ra được cách ngăn chặn lỗ hổng bảo mật đó thì việc tìm hiểu cách thức hoạt động của nó là vô cùng quan trọng:
Cách thức hoạt động của lỗ hổng sql injection
- Bước 1: Tìm kiếm các trang web cho phép submit dữ liệu ở bất kỳ một trình tìm kiếm nào đó trên mạng.
- Bước 2: Thử gửi các field tên đăng nhập, mật khẩu hoặc field id bằng hi' or 1=1-- để kiểm tra những chỗ yếu của trang web.
- Bước 3: Thông qua các yêu cầu của người dùng được cho phép bởi website, hacker sẽ gửi lệnh SQL độc hại đến các máy chủ cơ sở dữ liệu.
- Bước 4: Sử dụng sp_makewebtask để nhận và ghi các output của SQL Query ra file HTML.
- Bước 5: Nhận các thông tin quan trọng từ các thông báo lỗi của máy chủ SQL để xác nhận tên của table.
- Bước 6: Xác định và khai thác tên của các cột có trong table.
- Bước 7: Sau khi đã xác định được tên của column và table, hacker có thể dễ dàng thu thập được những thông tin quan trọng từ nó.
- Bước 8: Thêm các ký tự alphabet và numeric string để gây thất bại cho quá trình chuyển đổi từ từ text sang số của máy chủ.
- Bước 9: Sử dụng các statement update hoặc insert để tiến hành sửa đổi hoặc tạo mới record của table.
Xem thêm thông tin về kỹ thuật tấn công website bằng cách giả mạo chủ thể Csrf tại đây: https://bizfly.vn/techblog/csrf-la-gi.html
Cách ngăn chặn lỗ hổng bảo mật sql injection
Dưới đây là cách ngăn chặn lỗ hổng bảo mật Sql injection mà bạn có thể tham khảo:
Cách ngăn chặn lỗ hổng bảo mật sql injection
- Bạn tuyệt đối không được tin tưởng những input mà người dùng nhập vào. Việc bạn cần làm chính là xác thực mọi dữ liệu trước khi sử dụng các câu lệnh SQL.
- Sử dụng các thủ tục được lưu trữ để xem xét toàn bộ các input và trừu tượng hoá các lệnh SQL. Việc này giúp các cú pháp lệnh SQL không bị ảnh hưởng.
- Chuẩn bị sẵn các lệnh bao gồm tạo truy vấn SQL (hành động đầu tiên) và xử lý toàn bộ các dữ liệu đã được gửi tương tự như những tham số.
- Các thông báo lỗi phải tuyệt đối chính xác và tránh tiết lộ những vị trí xảy ra lỗi hay những thông tin, chi tiết mang tính giá trị, nhạy cảm.
- Khi nhận được các input người dùng, tham số từ URL hay các giá trị từ cookie thì bạn cần loại bỏ các ký tự meta và extend như /\, NULL, LF, CR,... trong các string.
- Trước khi query SQL, bạn nên chuyển các giá trị numeric sang integer hoặc dùng ISNUMERIC để chắc chắn hơn nó là một số integer.
- Xoá các stored procedure không dùng như xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask trong database master.
Hy vọng với bài viết này, bạn đã có thêm những kiến thức mới về Sql injection và hiểu được Sql injection là gì để có thể tìm cách phù hợp để ngăn chặn được sự tấn công của nó. Nếu bạn là một nhà quản trị website thì việc tìm hiểu về những kiến thức này là rất cần thiết để có thể đảm bảo được sự an toàn cho các dữ liệu trong ứng dụng web của mình.
Từ khóa » Tìm Hiểu Về Sql Injection
-
SQL Injection Là Gì? Cách Phòng Chống Tấn Công SQL Injection
-
Tìm Hiểu Về SQL Injection - Viblo
-
SQL Injection Là Gì? Tìm Hiểu Về 3 Loại SQL Injection - Vietnix
-
SQL Injection Là Gì? Cách Giảm Thiểu Và Phòng Ngừa SQL ... - TopDev
-
SQL Injection – Wikipedia Tiếng Việt
-
SQL Injection Là Gì? Nguy Hiểm đến Mức Nào Và Làm Sao để Phòng ...
-
Tìm Hiểu Về SQL Injection (P1)
-
Tìm Hiểu Về SQL Injection (Phần 01) - Cùng Học Web
-
SQL Injection: Quá Trình Tấn Công, Hậu Quả Và Cách Phòng Chống
-
SQL Injection Là Gì Và Cách Phòng Chống - SecurityBox
-
Lỗi SQL Injection Là Gì? Cách Diệt Tận Gốc Các Lỗi SQL Injection - ITNavi
-
SQL Injection Là Gì? Cách Bảo Mật Website An Toàn Trước Lỗ Hổng Này
-
Tìm Hiểu Về SQL Injection: - Giáo Trình Học Hackker
-
SQL Injection Attack Là Gì? - W3seo