1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) báo cáo môn an toàn thông tin nâng cao tìm HIỂU về các DẠNG tấn CÔNG SQL INJECTION

22 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Các Dạng Tấn Công SQL Injection
Người hướng dẫn TS. Hoàng Xuân
Trường học Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội
Chuyên ngành An toàn Thông tin
Thể loại Báo cáo môn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 323,11 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION 1.1Khái niệm1.1.1 SQL Structured Query Language Là ngôn ngữ truy vấn mang tính cấu trúc, là một loạingôn ngữ máy tính phổ biến đểtạ

Trang 1

MỤC LỤC

MỤC LỤC 1

CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION 2

1.1Khái niệm 2

1.1.1 SQL (Structured Query Language ) 2

1.1.3 SQL Injection 7

CHƯƠNG II: CÁC DẠNG TẤN CÔNG SQL INJECTION 13

2.1 Dạng tấn công vượt qua kiểm tra đăng nhập 13

2.2 Dạng tấn công sử dụng câu lệnh SELECT 14

2.3 Dạng tấn công sử dụng câu lệnh INSERT 16

2.4 Dạng tấn công sử dụng stored-procedures 17

2.5 Kết luận 17

CHƯƠNG III: PHÒNG CHỐNG SQL INJECTION 18

3.1 Kiểm soát chặt chẽ dữ liệu đầu vào 18

3.2 Sử dụng các lớp giao tiếp trừu tượng 19

3.3 Thiết lập các đối tượng giả làm mồi nhử 20

3.4 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu 20

KẾT LUẬN 21

TÀI LIỆU THAM KHẢO 22

Trang 2

CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION 1.1Khái niệm

1.1.1 SQL (Structured Query Language )

Là ngôn ngữ truy vấn mang tính cấu trúc, là một loạingôn ngữ máy tính phổ biến đểtạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ Ngôn ngữ này pháttriển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đốitượng-quan hệ Nó là một tiêu chuẩn ANSI/ISO

Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for Large Share Data Banks (tạm dịch là "Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ

liệu chia sẻ có khối lượng lớn") của tiến sĩ Edgar F Codd xuất bản tháng 6 năm 1970trong tạp chí Communications of the ACM của Hiệp hội ACM[8], một mô hình đã đượcchấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quản lý cơ sở dữ liệu quanhệ

Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu củaIBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R" dựa trên mô hình củaCodd Structured English Query Language, viết tắt là "SEQUEL" (tạm dịch là "Ngônngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế để quản lý và truy lục dữ liệu đượclưu trữ trong Hệ thống R Sau này, tên viết tắt SEQUEL được rút gọn thành SQL đểtránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK làHawker-Siddeley đăng ký) Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Coddnhưng nó không do tiến sĩ Codd thiết kế ra Ngôn ngữ SEQUEL được thiết kế bởiDonald D Chamberlin vàRaymond F Boyce tại IBM, và khái niệm của họ được phổbiến để tăng sự chú ý về SQL

Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không hỗ trợ SQL đầu tiên đượcphát triển năm 1974.(Ingres from U.C Berkeley.)

Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử nghiệmcủa khách hàng Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực tiễn của

hệ thống và đã chứng tỏ sự thành công của IBM Dựa vào kết quả đó, IBM bắt đầu pháttriển các sản phẩm thương mại bổ sung thêm SQL dựa trên nguyên mẫu Hệ thống Rbao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương mại hóatháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm 1983)

Trang 3

Cùng thời điểm đó Relational Software, Inc (bây giờ là Oracle Corporation) đãnhận thấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đãphát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA vàcác tổ chức khác Vào mùa hè năm 1979, Relational Software, Inc giới thiệu Oracle V2(Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX Oraclethường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị trường củaIBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của họ là tấn côngmột phiên bản của IBM System/38 chỉ trong có vài tuần Tương lai của Oracle đã đượcđảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát triển, trong khi đã

có nhiều phiên bản của các nhà cung cấp khác

IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì banđầu nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và họ sợ

nó sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS (nhữngsản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ liệuquan hệ) của mình Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát triểnSystem/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ Với năng lực vàthiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix vàmáy tính lớn

SQL được thừa nhận là tiêu chuẩn của ANSI (American National StandardsInstitute) vào năm 1986 và ISO (International Organization for Standardization) năm

1987 ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell", nhưng rấtnhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel Một quan niệmsai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắt của "Structured QueryLanguage" (Ngôn ngữ truy vấn có cấu trúc) Thực tế không phải như vậy

Trang 4

dụng phải đưa ra mô tả cho những dữ liệu mình muốn lấy ra chứ không chỉ ra những hành

động vật lý nào bắt buộc phải thực hiện để lấy ra kết quả đó Hệ thống cơ sở dữ liệu, haychính xác hơn là bộ tối ưu hóa câu truy vấn sẽ dịch từ câu truy vấn sang kế hoạch truy vấntối ưu

· Những từ khóa liên quan tới SELECT bao gồm:

· FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào,

và các bảng đó quan hệ với nhau như thế nào

dùng để xác định những bản ghi nào sẽ được lấy ra, hoặc

áp dụng với GROUP BY

dùng để kết hợp các bản ghi có những giá trị liên quan

với nhau thành các phần tử của một tập hợp nhỏ hơn các bản ghi

dùng để xác định những bản ghi nào, là kết quả từ từ khóa

GROUP BY, sẽ được lấy ra

dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo

những cột nào

Ví dụ sau về việc sử dụng câu lệnh SELECT để lấy danh sách những cuốn sách có

giá trị Câu truy vấn này sẽ truy lục tất cả các bản ghi trong bảng books với giá trị của cột pricelớn hơn 100.00 Kết quả sẽ được sắp xếp theo thứ tự tăng dần của các giá trị trong cột title Dấu (*) trong phần select list cho biết tất cả các cột của bảng books sẽ

được lấy ra và thể hiện ở kết quả

Trang 5

Ví dụ sau giải thích cách liên kết nhiều bảng, tập hợp các bản ghi trong câu truy vấn SQL, nó sẽ trả về danh sách các cuốn sách và số tác giả của từng cuốn sách.

SELECT books.title, count(*) AS Authors

How SQL Saved my Dog 1

(Kí tự gạch chân "_" thường được sử dụng trong tên bảng và tên cột để phân cách các

từ vì các kí tự khác có thể mâu thuẫn với cú pháp SQL Ví dụ như, dấu "-" có thể đượchiểu là dấu trừ.)

Với điều kiện cột isbn là cột chung duy nhất của hai bảng và cột title chỉ tồn tại trong bảng books thì câu truy vấn trên có thể được viết lại theo mẫu sau:

SELECT title, count(*) AS Authors

FROM books

NATURAL JOIN book_authors

GROUP BY title;

Tuy nhiên nhiều nhà cung cấp không hỗ trợ các thức này, hoặc nó yêu cầu một

số quy ước về tên cột nào đó Như vậy, câu truy vấn trên không được phổ biến

Sửa đổi dữ liệu

Ngôn ngữ sửa đổi dữ liệu (Data Manipulation Language - DML), là một phầnnhỏ của ngôn ngữ, có những thành phần tiêu chuẩn dùng để thêm, cập nhật và xóa dữliệu delete data

· INSERT dùng để thêm dữ liệu vào một bảng đã tồn tại

Trang 6

· UPDATE dùng để thay đổi giá trị của một tập hợp các bản ghi trong một bảng.

· MERGE dùng để kết hợp dữ liệu của nhiều bảng Nó được dùng như việc kết hợp giữa hai phần tử INSERT và UPDATE

· DELETE xóa những bản ghi tồn tại trong một bảng

· TRUNCATE Xóa toàn bộ dữ liệu trong một bảng (không phải là tiêu chuẩn, nhưng là một lệnh SQL phổ biến)

Giao dịch

Giao dịch, nếu có, dùng để bao bọc các thao tác sửa đổi dữ liệu Giao dịch(transaction) là một tập các thao tác đi cùng với nhau Trên môi trường khách/chủ(client/server) hay môi trường cơ sở dữ liệu phân tán việc đảm bảo tính đúng đắn của

dữ liệu rất quan trọng Ví dụ: Một người rút tiền khỏi tài khoản tại ngân hàng, thì tạithời điểm rút tiền, thao tác rút tiền khác phải bị từ chối Các thao tác trên tài khoản đó

có thể hình dung như sau:

Thao tác 1: <Mở khóa tài khoản>

Thao tác 2: <Thực hiện thao tác rút tiền>

Thao tác 3: <Khóa tài khoản>

Để đảm bảo các thao tác 1-3 phải đi liền với nhau thì phải đưa vào trong mộttransaction

<START TRANSACTION>

Thao tác 1: <Mở khóa tài khoản>

Thao tác 2: <Thực hiện thao tác rút tiền>

Thao tác 3: <Khóa tài khoản>

<END TRANSACTION>

Các lệnh liên quan đến giao dịch:

· BEGIN WORK (hoặc START TRANSACTION, tùy theo các ngôn ngữ SQL khácnhau) được sử dụng để đánh dấu việc bắt đầu một giao dịch dữ liệu (giao dịch dữ liệu đó cókết thúc hoàn toàn hay không)

· COMMIT dùng để lưu lại những thay đổi trong giao dịch

· ROLLBACK dùng để quay lại thời điểm sử dụng lệnh COMMIT cuối cùng

Trang 7

Câu trên chỉ có thể đúng nếu thỏa cặp USERNAME và PASSWORD tồn tại trong cơ sở

dữ liệu Câu trên có thể viết injection như sau: thay cụm từ JONH thành: ' OR 1=1 or''='(lưu ý ký tự nháy đơn ') khi đó câu SQL sẽ trở thành:

SELECT ID, NAME FROM USERS WHERE USERNAME='' OR 1=1 or''='' AND

PASSWORD='1234'

đoạn mã này hoạt động với bất cứ password nào Việc phòng chống SQL Injectioncũng không khó, chỉ cần chú ý khi viết là có thể chống lại được

Định nghĩa dữ liệu

Ngôn ngữ định nghĩa dữ liệu (Data Definition Language, viết tắt là DDL) là một

trong những phần chính của ngôn ngữ truy vấn Các câu lệnh này dùng để định nghĩacấu trúc củacơ sở dữ liệu, bao gồm định nghĩa các hàng, các cột, các bảng dữ liệu, cácchỉ số và một số thuộc tính khác liên quan đến cơ sở dữ liệu như vị trí của file Các câulệnhngôn ngữ định nghĩa dữ liệu là thành phần chính trong cáchệ quản lý dữ liệu và có

sự khác biệt rất nhiều giữa các ngôn ngữ truy vấn trên các hệ khác nhau

dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase

Trang 8

Các dạng lỗi thường gặp

Không kiểm tra ký tự thoát truy vấn

Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trongcâu truy vấn SQL Kết quả là người dùng cuối có thể thực hiện một số truy vấn khôngmong muốn đối với cơ sở dữ liệu của ứng dụng Dòng mã sau sẽ minh họa lỗi này:

statement = "SELECT * FROM users WHERE name = '" + userName + "';"

Câu lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng nhữngngười dùng Tuy nhiên, nếu biến "userName" được nhập chính xác theo một cách nào đóbởi người dùng ác ý, nó có thể trở thành một câu truy vấn SQL với mục đích khác hẳn sovới mong muốn của tác giả đoạn mã trên Ví dụ, ta nhập vào giá trị của biến userNamenhư sau:

a' or 't'='t

Khiến câu truy vấn có thể được hiểu như sau:

SELECT * FROM users WHERE name = 'a' or 't'='t';

Trang 9

Nếu đoạn mã trên được sử dụng trong một thủ tục xác thực thì ví dụ trên có thể được sửdụng để bắt buộc lựa chọn một tên người dùng hợp lệ bởi 't'='t' luôn đúng Trong khi hầuhết các SQL server cho phép thực hiện nhiều truy vấn cùng lúc chỉ với một lần gọi, tuynhiên một số SQL API như mysql_query của php lại không cho phép điều đó vì lý do bảomật Điều này chỉ ngăn cản tin tặc tấn công bằng cách sử dụng các câu lệnh riêng rẽ màkhông ngăn cản tin tặc thay đổi các từ trong cú pháp truy vấn Các giá trị của biến

"userName" trong câu truy vấn dưới đây sẽ gây ra việc xoá những người dùng từ bảngngười dùng cũng tương tự như việc xóa tất cả các dữ liệu được từ bảng dữ liệu (về bảnchất là tiết lộ các thông tin của mọi người dùng), ví dụ này minh họa bằng một API chophép thực hiện nhiều truy vấn cùng lúc:

a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't

Điều này đưa tới cú pháp cuối cùng của câu truy vấn trên như sau:

SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROMdata WHERE 't' = 't';

Xử lý không đúng kiểu

Lỗi SQL injection dạng này thường xảy ra do lập trình viên hay người dùng định nghĩađầu vào dữ liệu không rõ ràng hoặc thiếu bước kiểm tra và lọc kiểu dữ liệu đầu vào Điềunày có thể xảy ra khi một trường số được sử dụng trong truy vấn SQL nhưng lập trìnhviên lại thiếu bước kiểm tra dữ liệu đầu vào để xác minh kiểu của dữ liệu mà người dùngnhập vào có phải là số hay không Ví dụ như sau:

statement:= "SELECT * FROM data WHERE id = " + a_variable + ";"

Ta có thể nhận thấy một cách rõ ràng ý định của tác giả đoạn mã trên là nhập vào một sốtương ứng với trường id - trường số Tuy nhiên, người dùng cuối, thay vì nhập vào một

số, họ có thể nhập vào một chuỗi ký tự, và do vậy có thể trở thành một câu truy vấn SQLhoàn chỉnh mới mà bỏ qua ký tự thoát Ví dụ, ta thiết lập giá trị của biến a_variable là:1;DROP TABLE users

khi đó, nó sẽ thực hiện thao tác xóa người dùng có id tương ứng khỏi cơ sở dữ liệu, vìcâu truy vấn hoàn chỉnh đã được hiểu là:

SELECT * FROM data WHERE id=1;DROP TABLE users;

Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu

Đôi khi lỗ hổng có thể tồn tại chính trong phần mềm máy chủ cơ sở dữ liệu, như làtrường hợp hàm mysql_real_escape_string() của các máy chủ MySQL Điều này sẽ chophép kẻ tấn công có thể thực hiện một cuộc tấn công SQL injection thành công dựa trên

Trang 10

những ký tự Unicode không thông thường ngay cả khi đầu nhập vào đang được thoát.Chữ đậm

Blind SQL injection

Lỗi SQL injection dạng này là dạng lỗi tồn tại ngay trong ứng dụng web nhưng hậu quảcủa chúng lại không hiển thị trực quan cho những kẻ tấn công Nó có thể gây ra sự saikhác khi hiển thị nội dung của một trang chứa lỗi bảo mật này, hậu quả của sự tấn côngSQL injection dạng này khiến cho lập trình viên hay người dùng phải mất rất nhiều thờigian để phục hồi chính xác từng bit dữ liệu Những kẻ tấn công còn có thể sử dụng một

số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã được thiết lập sẵn.Thay đổi giá trị điều kiện truy vấn

Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điều kiện trong câu truy vấn,làm sai lệch sự hiển thị của một ứng dụng chứa lỗi này

SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=1;

Sẽ hiển thị một trang một cách bình thường, trong khi:

SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=2;

sẽ hiển thị một nội dung khác, hoặc không hiển thị gì nếu ứng dụng web có chứa lỗiSQL injection dạng này Lỗ hổng dạng này còn cho phép tin tặc không chỉ gây ảnhhưởng tới bảng hay dữ liệu hiện tại mà còn ảnh hưởng tới những dữ liệu hay bảng khácphụ thuộc vào nội dung của dữ liệu hay bảng hiện tại

Điều kiện lỗi

Lỗi SQL injection dạng này dẫn tới việc buộc cơ sở dữ liệu chỉ được phép đánh giá khi

mà giá trị của câu lệnh WHERE là đúng Ví dụ:

SELECT 1/0 from users where username='Ralph';

Phép chia cho 0 chỉ được đánh giá là lỗi khi mà người dùng có tên "Ralph" tồn tại trong

cơ sở dữ liệu

Thời gian trễ

Lỗi SQL injection dạng này tồn tại khi thời gian xử lý của một hay nhiều truy vấn SQLphụ thuộc vào dữ liệu logic được nhập vào hoặc quá trình xử lý truy vấn của SQLengine cần nhiều thời gian Tin tặc có thể sử dụng lỗi SQL injection dạng này để xácđịnh thời gian chính xác mà trang cần tải khi giá trị nhập vào là đúng

M14CQTE02-B

Trang 11

1.2 Mức độ thiệt hại

Thực chất, nguồn gốc của quá trình tấn công SQL Injection là sự cẩu thả trong quytrình mã hóa ứng dụng, mật khẩu ứng dụng nhưng vẫn có thể ngăn chặn được, tuynhiên mức độ thiệt hại là không thể lường trước được và phụ thuộc vào quy mô củatừng database Trong quá trình một ứng dụng web bất kỳ có thể giao tiếp với backendatabase thì sẽ phải cung cấp thông tin đăng nhập tới một cơ sở dữ liệu (quy trình nàykhác hẳn so với lúc người dùng tiến hành đăng nhập vào website hay form login) Phụthuộc vào mức phân quyền tương ứng mà ứng dụng web yêu cầu, tài khoản trong cơ sở

dữ liệu có thể sử dụng được bất kỳ quyền chỉnh sửa nào, từ việc đơn giản như đọc, ghiđơn thuần trên những bảng có sẵn cho tới mức quyền đầy đủ

Chúng ta thấy bằng việc nhập tên tài khoản (ví dụ “youruser”, “admin’ ” hoặc bất

kỳ) thì hoàn toàn có thể đăng nhập trực tiếp vào database mà không cần biết password.

Khi ở bên trong hệ thống sẽ không thể biết được tài khoản đó bình thường hoặc có đầy

đủ quyền tương ứng Về mặt bản chất, việc phân quyền của database không cung cấpquyền chính xác tương ứng và an toàn trong quá trình này, bởi vì thông thường mộtwebsite ít nhất phải có quyền đọc hoặc ghi tới cơ sở dữ liệu tương ứng

Giải sử rằng hệ thống website của chúng ta có đầy đủ quyền truy cập, bao gồm việcxóa dữ liệu, thêm hoặc xóa bảng, tạo mới tài khoản… và trên thực tế, có khá nhiềuchương trình nếu muốn cài đặt và sử dụng thì phải được phân quyền ở mức cao nhất, dovậy bạn phải cẩn thận khi thực hiện việc gán quyền

Để minh họa mức ộ thiệt hại có thể xảy ra trong tình huống này, chúng ta sẽ dựa

vào hình vẽ trên, và nhập phần thông tin sau vào trường Username:

"Robert'; DROP TABLE Users; "

Chỉ với vài sự thay đổi nho nhỏ, câu lênh query sẽ trở thành:

Ngày đăng: 02/12/2022, 08:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Bài giảng Cơ sở Dữ liệu, Ts. Phạm Thế Quế, Học Viện Công nghệ Bưu chính Viễn thông, 2006 Sách, tạp chí
Tiêu đề: Bài giảng Cơ sở Dữ liệu
Tác giả: Phạm Thế Quế
Nhà XB: Học Viện Công nghệ Bưu chính Viễn thông
Năm: 2006
[2]. Danh sách các website bị lỗi SQL injection: http://www.security.com.vn/ Sách, tạp chí
Tiêu đề: Danh sách các website bị lỗi SQL injection
[4]. Advanced SQL Injection:http://www.nextgenss.com/papers/advanced_sql_injection.pdf Sách, tạp chí
Tiêu đề: Advanced SQL Injection
[5]. Preventing SQL Injection: http://www.owasp.org/asac/input_validation/sql.shtml Sách, tạp chí
Tiêu đề: Preventing SQL Injection
[6]. SQL Injection Attacks - Are You Safe? http://www.sitepoint.com/article/794 [7]: https://vi.wikipedia.org Sách, tạp chí
Tiêu đề: SQL Injection Attacks - Are You Safe
Nhà XB: SitePoint
[3]. SQL Injection FAQ: http://www.sqlsecurity.com/DesktopDefault.aspx? tabindex=2&amp;tabid=3 Link

HÌNH ẢNH LIÊN QUAN

Ví dụ sau giải thích cách liên kết nhiều bảng, tập hợp các bản ghi trong câu truy vấn SQL, nó sẽ trả về danh sách các cuốn sách và số tác giả của từng cuốn sách. - (TIỂU LUẬN) báo cáo môn an toàn thông tin nâng cao tìm HIỂU về các DẠNG tấn CÔNG SQL INJECTION
d ụ sau giải thích cách liên kết nhiều bảng, tập hợp các bản ghi trong câu truy vấn SQL, nó sẽ trả về danh sách các cuốn sách và số tác giả của từng cuốn sách (Trang 5)
Câu lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng những người dùng - (TIỂU LUẬN) báo cáo môn an toàn thông tin nâng cao tìm HIỂU về các DẠNG tấn CÔNG SQL INJECTION
u lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng những người dùng (Trang 8)

🧩 Sản phẩm bạn có thể quan tâm

w