Trước hết chúng ta cùng tìm hiểu “SQL Injection” là gì ? SQL injection is a code injection technique, used lớn attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to. (wikipedia.com)Từ khái niệm trích dẫn từ page wikipedia trên chúng ta có thể hiểu nôm na đó là một kĩ thuật tiến công vào cơ sở dữ liệu bằng cách chèn các đoạn mã đọc hại vào, giúp cho system bị tấn công lạc hướng, và dữ liệu bị phá hủy hay bị ăn trộm. Xem thêm : www.magebay.com/magento-multi-vendor-marketplace-extension II. Các ví dụ a) Tấn công mệnh đề luôn đúng trước tiên một thí dụ dễ thấy đó là các tính năng tìm kiếm hoặc trang đăng nhập, bạn hãy xem đoạn code truy vấn SQL dưới đây mô tả đoạn code kiểm tra người sử dụng có sinh tồn trong hệ thông hay không SELECT * FROM user WHERE username = $usernamecác bạn có thấy đoạn mã trên quen quen không nào ? Mình tin là chúng ta đã sử dụng đoạn code gần giống như trên 1 lần trong đời khi mới bước vào lĩnh vực lập trình web rồi ra . Sau đây mình sẽ cho các bạn thấy đoạn code trên nguy hiểm như thế nào? ví thử trong ô signin ai đó cố tình điền vào “or 1=1” thì khi truy vấn, câu SQL của chúng ta sẽ trở thành mệnh đề luôn đúng như dưới đây SELECT * FROM user WHERE username = $username OR 1 = 1vì là “or 1=1” nên câu SQl trên luôn luôn thực thi và một kẻ nào đó sẽ có thể đăng nhập vào system của bạn một cách dễ, điều này là hết sức hiểm nguy, nhất là các page back end quản trị website của bạn. b) Tấn công để phá hoại trực tiếp dữ liệu Cũng đoạn truy vấn trên, nhưng chúng ta không cố tình nhập vào “OR 1=1″ mà lần này nhập thêm như thế này vào ô input chưa username để đăng nhâ[j như sau : ” ; DROP table table_name”‘ Lúc này đoạn truy vấn đầy đủ sẽ trở nên SELECT * FROM user WHERE username = $username ; Drop table table_namebởi vì SQL tương trợ thực thi một chuỗi lệnh liên tiếp và cách nhau bằng dấu chấm phẩy “;” , cho nên với câu lệnh trên, sau khi lấy ra thông tin user, nó sẽ thực thi lệnh xóa đi một table được chỉ định nào đó. Điều này thực sự hết sức nguy hiểm, phá hoại trực tiếp tới hệ thống cơ sở dữ liệu Như cả nhà thấy, chỉ với một vài thí dụ, đủ để chúng ta thấy được rằng nhưng mà điều bé nhỏ đôi khi lại gây ra những tác hại vô cùng nghiêm trọng. Trong các bài blog tới, mình sẽ cố gắng viết tiếp về các kiểu tấn công khác và phương hướng khắc phục. Thân Xem thêm : Chuyển thư mục đến RAM để tăng tốc độ website