Tiêm SQL

Tác Giả: Peter Berry
Ngày Sáng TạO: 13 Tháng Tám 2021
CậP NhậT Ngày Tháng: 22 Tháng Sáu 2024
Anonim
Tiêm SQL - Công Nghệ
Tiêm SQL - Công Nghệ

NộI Dung

Định nghĩa - SQL Injection có nghĩa là gì?

Một SQL tiêm là một cuộc tấn công máy tính trong đó mã độc được nhúng vào một ứng dụng được thiết kế kém và sau đó được chuyển đến cơ sở dữ liệu phụ trợ. Dữ liệu độc hại sau đó tạo ra kết quả truy vấn cơ sở dữ liệu hoặc các hành động không bao giờ được thực hiện.


Giới thiệu về Microsoft Azure và Microsoft Cloud | Trong suốt hướng dẫn này, bạn sẽ tìm hiểu về điện toán đám mây là gì và Microsoft Azure có thể giúp bạn di chuyển và điều hành doanh nghiệp của bạn từ đám mây như thế nào.

Techopedia giải thích SQL Injection

Hãy xem qua một ví dụ về một cuộc tấn công SQL SQL:

Một ứng dụng chạy các hoạt động ngân hàng có chứa các menu có thể được sử dụng để tìm kiếm thông tin chi tiết của khách hàng bằng cách sử dụng các điểm dữ liệu như số An sinh xã hội của khách hàng. Trong nền, ứng dụng gọi một truy vấn SQL chạy trong cơ sở dữ liệu bằng cách chuyển các giá trị tìm kiếm đã nhập như sau:

CHỌN client_name, điện thoại, địa chỉ, date_of_birth WHERE social_sec_no = 23425

Trong tập lệnh mẫu này, người dùng nhập giá trị 23425 trong cửa sổ menu ứng dụng, yêu cầu người dùng nhập số An sinh xã hội. Sau đó, bằng cách sử dụng giá trị được cung cấp bởi người dùng, một truy vấn SQL sẽ chạy trong cơ sở dữ liệu.

Người dùng có kiến ​​thức SQL có thể hiểu ứng dụng và thay vì nhập một giá trị duy nhất khi được yêu cầu số An sinh xã hội, hãy nhập chuỗi số 23425 hoặc 1 = 1, được chuyển đến cơ sở dữ liệu như sau:

CHỌN client_name, điện thoại, địa chỉ, date_of_birth WHERE social_sec_no = 23425 hoặc 1 = 1

Mệnh đề WHERE rất quan trọng vì nó giới thiệu lỗ hổng. Trong cơ sở dữ liệu, điều kiện 1 = 1 luôn luôn đúng và vì truy vấn đã được chỉ định để trả về chi tiết số An sinh xã hội của khách hàng (23425) hoặc WHERE 1 = 1, nên truy vấn sẽ trả về tất cả các hàng trong bảng, không phải là ý định ban đầu.

Ví dụ tấn công tiêm SQL ở trên rất đơn giản, nhưng nó cho thấy cách khai thác lỗ hổng để lừa ứng dụng chạy một truy vấn hoặc lệnh truy vấn cơ sở dữ liệu phụ trợ.

Các cuộc tấn công tiêm nhiễm SQL có thể được giảm thiểu bằng cách đảm bảo thiết kế ứng dụng phù hợp, đặc biệt là trong các mô-đun yêu cầu đầu vào của người dùng để chạy các truy vấn hoặc lệnh cơ sở dữ liệu. Trong ví dụ trên, ứng dụng có thể được thay đổi để nó chỉ chấp nhận một giá trị số.