SQL Injection là một kỹ thuật tấn công vào câu lệnh cơ sở dữ liệu thông qua chèn các đoạn mã độc vào SQL để đánh lạc hướng xử lý với mục đích phá hủy dữ liệu hoặc ăn cắp.
Như Tiêu đề thi đầu tiên website phải bị lỗi để có thể tấn công vào cơ sở dữ liệu
1.Tấn Công Bằng Cấu Trúc Lệnh Của cơ sở dữ liệu
Ví dụ:
-Tấn công với câu lệnh luôn đúng
-Tấn công với câu lệnh luôn đúng
SELECT * FROM accounts WHERE userName = '{$userName}'
đối với các bạn đã học qua các lệnh cơ sỡ dữ liệu thì có thể nhìn ra chức năng của dòng lệnh trên
giả sử trong ô đăng nhập người dùng nhập thêm đằng sau là
' or '1' = '1'
SELECT * FROM accounts WHERE userName = '{$userName}' or '1' = '1'
vì là một câu lệnh luôn đúng cho nên bạn có thể dễ dàng truy cập vào database của họ
-Tấn công hướng tới phá hủy dữ liệu
SELECT * FROM accounts WHERE userName = '{$userName}' ;DROP TABLE tablename;Hay
SELECT * FROM accounts WHERE userName = '{$userName}' ;DROP DATABASE databasename;
bạn có thể thấy từ trên thì người khai thác lỗi SQL đã có thể dễ dàng xóa đi 1 table hay cả cái database của bạn
->ví dụ trên chỉ ra rằng bạn cần phải check kỹ lỗi này
2.Hướng khắc phục
Hầu hết các website đặt tại máy chủ VPS mà VPS không thường bật tính năng magic_quotes_gpc tính năng này nhằm khác phục lỗi đã chỉ ra ở trên tính năng đó bật ở đâu thì các bạn google nha tại hiện tại mình không có cái vps :))))
Hướng thay thế là thêm cái hàm addslashes khi nhận input dữ liệu các bạn sử dụng để nó tự động thêm ký tự \ vào trước dấu ‘ (nháy đơn), ” (nháy kép) như thế sẽ không phá vỡ cấu trúc câu lệnh SQL của bạn được.
(Còn Tiếp)
BÌNH LUẬN (0)
Một số lưu ý khi bình luận
Mọi bình luận sai nội quy sẽ bị xóa mà không cần báo trước (xem nội quy).
Không nói lời thiếu văn hóa, không quảng cáo thông qua khung bình luận.
Bấm Thông báo cho tôi bên dưới khung bình luận để nhận thông báo khi admin trả lời.
Để bình luận một đoạn code, hãy mã hóa code trước nhé!