Chủ đề của DBS401 - An ninh cơ sở dữ liệu

DBS401 - Chương 8: Khai thác và phòng thủ SQL injection

Phòng thủ SQL injection được đặt cạnh các hoạt động khai thác để làm rõ hai mặt của cùng một vấn đề. Người học xem việc truy xuất dữ liệu, cách khai thác quyền hoặc mật khẩu, rồi đối chiếu các hình thức này với chiến lược ngăn chặn. Thu thập thông tin là một phần khác của chuỗi khai thác. Những kỹ thuật này cho thấy cách điểm yếu có thể dẫn tới việc tiếp cận dữ liệu và vì sao cần xác định biện pháp phòng vệ phù hợp. Mối quan hệ giữa khai thác dữ liệu và việc lựa chọn chiến lược ngăn chặn tạo thành trọng tâm của chủ đề. Chương 9 tiếp nối bằng các hoạt động kiểm toán cơ sở dữ liệu.

Xem danh sách câu hỏi13 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

13Câu hỏi hiện có

Câu hỏi của chủ đề

13/13 câuHết danh sách
ATo secure the database
BTo create backups of the database
CTo gain unauthorized access or manipulate database data
DTo optimize database performance
Lời giải
Đáp án đúng: "To gain unauthorized access or manipulate database data". SQL injection xảy ra khi đầu vào không tin cậy làm thay đổi cấu trúc truy vấn SQL; kẻ tấn công có thể đọc dữ liệu, vượt kiểm tra quyền hoặc sửa nội dung tùy quyền tài khoản ứng dụng. Bảo vệ cơ sở dữ liệu là mục tiêu phòng vệ; tạo bản sao lưu là tác vụ quản trị; tối ưu hiệu năng không khai thác lỗi diễn giải đầu vào. "To secure the database" "To create backups of the database" "To optimize database performance"
Mở trang câu hỏi này →
ABy writing simplified SQL code that avoids using suspicious keywords
BBy establishing direct database connections instead of going through the web interface
CBy encoding characters in unexpected formats like URL or Hex
DBy performing only backend validation
Lời giải
Đáp án đúng: "By encoding characters in unexpected formats like URL or Hex". Mã hóa đầu vào ở dạng bất ngờ có thể đánh lừa bộ lọc dựa trên mẫu nếu ứng dụng không chuẩn hóa nhất quán trước khi kiểm tra; truy vấn tham số hóa mới là biện pháp phòng vệ chính. Viết SQL đơn giản tránh từ đáng ngờ không phải kỹ thuật né lọc đặc trưng; kết nối thẳng là đường truy cập khác, không né bộ lọc ứng dụng; chỉ kiểm tra phía máy chủ mô tả vị trí kiểm tra, không phải thủ thuật tấn công. "By writing simplified SQL code that avoids using suspicious keywords" "By establishing direct database connections instead of going through the web interface" "By performing only backend validation"
Mở trang câu hỏi này →
AIncreasing query performance
BUsing alternative encodings or unexpected words
CCreating database backups
DEncrypting their SQL queries
Lời giải
Đáp án đúng: "Using alternative encodings or unexpected words". Kẻ tấn công có thể biến đổi cách biểu diễn đầu vào hoặc dùng cách viết bất thường để né bộ lọc dựa trên mẫu đơn giản; bộ lọc cần chuẩn hóa dữ liệu và kiểm tra truy vấn an toàn thay vì chỉ dò chuỗi cố định. "Increasing query performance" là mục tiêu tối ưu hệ thống, không phải cách né bộ lọc; "Creating database backups" là biện pháp phục hồi dữ liệu, không che giấu đầu vào độc hại; "Encrypting their SQL queries" không phải cách thông thường để vượt bộ lọc ứng dụng, vốn phải xử lý dữ liệu trước khi gửi truy vấn tới cơ sở dữ liệu.
Mở trang câu hỏi này →
AUsed for optimizing SQL queries
BExecute a specified action based on a true or false condition
CBreak up common words using URL code
DInitiate time-based responses
Lời giải
Đáp án đúng: "Execute a specified action based on a true or false condition". Trong SQL injection dạng điều kiện, biểu thức Boolean (đúng/sai) chi phối nhánh hoặc phản hồi mà truy vấn tạo ra; người kiểm thử có thể so sánh kết quả khi điều kiện đúng và sai để suy luận hành vi. "Used for optimizing SQL queries" nói về tối ưu hóa truy vấn hợp lệ, không phải đặc trưng của điều kiện bị chèn. "Break up common words using URL code" mô tả biến đổi hoặc mã hóa ký tự, không phải logic điều kiện. "Initiate time-based responses" liên quan kỹ thuật dựa trên độ trễ thời gian; đó là một cách khai thác mù riêng, không phải định nghĩa chung của conditional statements.
Mở trang câu hỏi này →
AError messages from the database
BInferential exploration
CDirect database access
DObserving database behavior in response to crafted inputs
Lời giải
Đáp án đúng: "Direct database access". Khi khai thác SQL injection qua một ứng dụng, attacker thường suy luận từ phản hồi của ứng dụng hoặc cơ sở dữ liệu. "Error messages from the database" có thể tiết lộ cú pháp hoặc cấu trúc; "Inferential exploration" rút thông tin từ thay đổi đúng/sai hoặc thời gian phản hồi; "Observing database behavior in response to crafted inputs" là cách kiểm tra tác động của đầu vào tạo tác. Truy cập trực tiếp cơ sở dữ liệu đòi hỏi một đường truy cập hoặc thông tin xác thực riêng, nên không phải cách thu thập thông tin qua lỗ hổng SQL injection đang xét.
Mở trang câu hỏi này →
AThrough the use of database management tools
BBy utilizing strong encryption mechanisms
CUsing third-party applications or browser add-ons
DBy conducting regular database backups
Lời giải
Đáp án đúng: "Using third-party applications or browser add-ons". Để kiểm tra lưu lượng HTTP trong một bài kiểm thử được phép, công cụ proxy hoặc tiện ích trình duyệt có thể quan sát và chỉnh sửa yêu cầu, phản hồi trước khi gửi đến ứng dụng; cần bảo đảm có ủy quyền và tránh dùng trên hệ thống ngoài phạm vi. "Through the use of database management tools" thao tác với cơ sở dữ liệu, không trực tiếp chặn và sửa dữ liệu HTTP giữa trình duyệt với ứng dụng. "By utilizing strong encryption mechanisms" mã hóa giúp bảo vệ tính bí mật và toàn vẹn khi truyền, không phải cách để chủ động chỉnh sửa nội dung. "By conducting regular database backups" tạo bản sao phục hồi dữ liệu, không can thiệp vào lưu lượng HTTP.
Mở trang câu hỏi này →
ADirectly accessing the database without using SQL code
BGuessing the structure of the database
CAttacking a database that is blind to SQL syntax
DInjecting SQL code without understanding its effects
Lời giải
Đáp án đúng: "Guessing the structure of the database". Blind SQL Injection (SQL injection mù) xảy ra khi ứng dụng không trả trực tiếp kết quả truy vấn hay thông báo lỗi hữu ích; người kiểm thử suy luận thông tin từ tín hiệu gián tiếp như khác biệt phản hồi hoặc thời gian. Dò cấu trúc cơ sở dữ liệu là một mục tiêu thường gặp và là phương án gần nhất, nhưng không phải toàn bộ định nghĩa hay mục tiêu duy nhất của kỹ thuật này. "Directly accessing the database without using SQL code" sai vì SQL injection dựa vào việc làm ứng dụng thực thi SQL bị chèn. "Attacking a database that is blind to SQL syntax" nhầm “blind” là cơ sở dữ liệu không hiểu cú pháp; thuật ngữ nói về phản hồi bị che khuất. "Injecting SQL code without understanding its effects" không định nghĩa kỹ thuật mù; việc thiếu hiểu biết của người tấn công không phải đặc điểm cốt lõi.
Mở trang câu hỏi này →
ASingle channel uses one input field to inject SQL commands, while multichannel uses multiple input fields
BSingle channel uses one communication channel to send and receive data, while multichannel uses multiple channels
CSingle channel uses one SQL statement to perform the attack, while multichannel uses multiple SQL statements
DSingle channel uses one type of SQL injection technique, while multichannel uses multiple techniques
Lời giải
Đáp án đúng: "Single channel uses one communication channel to send and receive data, while multichannel uses multiple channels". Theo cách dùng channel trong câu này, phân biệt nằm ở số kênh giao tiếp được dùng để truyền và nhận dữ liệu; cách hiểu này cần giới hạn theo ngữ cảnh vì single-channel/multichannel không phải hệ phân loại SQL injection phổ quát như in-band, inferential hay out-of-band. "Single channel uses one input field to inject SQL commands" nói về số trường đầu vào, không nhất thiết là số kênh truyền nhận; "Single channel uses one SQL statement" đếm câu lệnh chứ không mô tả kênh; "Single channel uses one type of SQL injection technique" nhầm số kênh giao tiếp với số kỹ thuật tấn công.
Mở trang câu hỏi này →
AThe database must have a specific number of tables.
BThe data types and number of columns in the original and injected queries must match.
CThe database must be running on a 64-bit system.
DThe user must have administrative privileges.
Lời giải
Đáp án đúng: "The data types and number of columns in the original and injected queries must match.". Để phép UNION kết hợp được hai tập kết quả, các truy vấn phải trả cùng số cột và kiểu dữ liệu ở các vị trí tương ứng phải tương thích; nếu không, cơ sở dữ liệu thường từ chối phép kết hợp. "The database must have a specific number of tables." không phải điều kiện của UNION, vốn kết hợp kết quả truy vấn chứ không yêu cầu số lượng bảng cố định. "The database must be running on a 64-bit system." kiến trúc 64 bit không quyết định tính hợp lệ của cấu trúc UNION. "The user must have administrative privileges." không cần thiết để dùng UNION; quyền cần có phụ thuộc đối tượng mà truy vấn truy cập.
Mở trang câu hỏi này →
AThey allow attackers to alter database encryption settings
BThey enable the injection of additional queries to be executed with the original query
CThey are required to delete data from the database
DThey help in creating new user accounts in the database
Lời giải
Đáp án đúng: "They enable the injection of additional queries to be executed with the original query". Trong ngữ cảnh SQL injection, UNION có thể ghép tập kết quả từ một truy vấn khác vào kết quả truy vấn ban đầu nếu cấu trúc cột tương thích; điều này có thể làm dữ liệu ngoài dự kiến xuất hiện trong phản hồi ứng dụng. "They allow attackers to alter database encryption settings" không phải chức năng của UNION, vốn kết hợp hàng kết quả. "They are required to delete data from the database" sai vì UNION không phải lệnh xóa và không bắt buộc để xóa dữ liệu. "They help in creating new user accounts in the database" mô tả hành động thay đổi dữ liệu hoặc quyền, không phải mục đích của phép kết hợp tập kết quả.
Mở trang câu hỏi này →
AEncrypting user inputs to test database security
BObserving how the server behaves in response to manipulated inputs
CTesting the strength of SQL database encryption
DAssessing the database's response time to complex queries
Lời giải
Đáp án đúng: "Observing how the server behaves in response to manipulated inputs". Kiểm thử suy luận (inferential testing) đánh giá phản ứng quan sát được của hệ thống trước đầu vào được thay đổi; người kiểm thử suy ra điều kiện hoặc dữ liệu bên trong từ khác biệt về kết quả, lỗi hay thời gian phản hồi. "Encrypting user inputs to test database security" là thao tác biến đổi hoặc bảo vệ dữ liệu, không phải phương pháp suy luận; "Testing the strength of SQL database encryption" đánh giá mã hóa; "Assessing the database's response time to complex queries" có thể là đo hiệu năng, nhưng riêng thời gian truy vấn phức tạp không nêu phép so sánh phản ứng trước đầu vào thao túng.
Mở trang câu hỏi này →
AThey allow intruders to execute different actions based on whether a condition is true or false.
BThey improve the accuracy of the attack.
CThey automatically grant administrative privileges.
DThey help secure the database from further attacks.
Lời giải
Đáp án đúng: "They allow intruders to execute different actions based on whether a condition is true or false.". Biểu thức điều kiện trong SQL bị chèn cho phép nhánh truy vấn hoặc phản hồi thay đổi theo kết quả đúng/sai; so sánh các phản hồi này có thể giúp suy luận dữ liệu trong một số kiểu tấn công. "They improve the accuracy of the attack." không nêu cơ chế cụ thể và độ chính xác phụ thuộc nhiều yếu tố, không phải tác dụng định nghĩa. "They automatically grant administrative privileges." điều kiện SQL không tự nâng quyền; quyền vẫn do cấu hình tài khoản và kiểm soát truy cập quyết định. "They help secure the database from further attacks." là mục tiêu phòng vệ, trái với việc kẻ xâm nhập lợi dụng điều kiện để thao túng truy vấn.
Mở trang câu hỏi này →
ABy executing commands that delete important records from the database
BBy combining results from multiple queries into a single response
CBy running commands that modify or update the structure of the database schema
DBy isolating data in standalone tables
EBy encrypting sensitive data before retrieval
Lời giải
Đáp án đúng: "By combining results from multiple queries into a single response". UNION kết hợp các hàng kết quả của những câu truy vấn tương thích thành một tập kết quả; khi ứng dụng đưa kết quả đó ra phản hồi, kẻ tấn công có thể tìm cách làm lộ dữ liệu ngoài dự kiến. "By executing commands that delete important records from the database" là hành vi của lệnh xóa, không phải chức năng của UNION. "By running commands that modify or update the structure of the database schema" là hành vi lệnh định nghĩa hoặc sửa cấu trúc, không phải phép ghép kết quả. "By isolating data in standalone tables" mô tả cách tách dữ liệu, không liên quan đến cách UNION kết hợp hàng. "By encrypting sensitive data before retrieval" là hoạt động mã hóa, không phải tác dụng của phép UNION.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.