Structured Query Language Injection có nghĩa là thế nào ?

Thảo luận trong 'Rao Vặt Toàn Quốc' bắt đầu bởi ngocseo00, 8/6/16.

  1. ngocseo00

    ngocseo00 Thành Viên Mới

    Tham gia ngày:
    8/4/16
    Bài viết:
    78
    Đã được thích:
    0
    Điểm thành tích:
    6
    Giới tính:
    Nam
    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
    [​IMG]
    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 = $username​
    cá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 [​IMG] . 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 = 1​
    vì 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_name​
    bở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
     
    Cảm ơn đã xem bài:

    Structured Query Language Injection có nghĩa là thế nào ?

    Đang tải...


Chủ để tương tự : Structured Query
Diễn đàn Tiêu đề Date
Rao Vặt Toàn Quốc Học lập trình PHP-MySQL, HTML-CSS, jQuery, Adobe Photoshop, Flash, Illus tạ 10/3/14

Like và Share ủng hộ ITSEOVN