wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Bảo mật ứng dụng web và PHP – Trắc nghiệm tổng hợp

Total questions: 67

Worksheet time: 34mins

Name
Class
Date
1.

Để bảo vệ chức năng API của ứng dụng web, biện pháp nào cần được áp dụng?

a)

Giới hạn quyền truy cập API chỉ cho những người dùng có quyền quản trị

b)

Sử dụng các biện pháp bảo mật như mã hóa dữ liệu và signature API để đảm bảo tính toàn vẹn

c)

Áp dụng cơ chế phân quyền chi tiết cho các API, cho phép API chỉ truy cập các tài nguyên mà người dùng cần

d)

Sử dụng xác thực API bằng API keys hoặc OAuth

2.

Các nội dung trong triển khai ứng dụng web an toàn là:

a)

Đáp án (B), (C), (D) đều đúng

b)

Cấu hình an toàn (bao gồm TLS, cập nhật HĐH và các thành phần khác, gỡ bỏ thành phần không cần thiết)

c)

Cấu hình WebApp với các tùy chọn an toàn

d)

Thiết lập các cơ chế an toàn trên WebServer (Antivirus, Personal Firewall, WAF, IDPS sensor...), triển khai, cấu hình các thiết bị bị an toàn mạng (Network Firewall, Network IDS/IPS, Reverse Proxy, Load Balancer...)

3.

Trong quy trình CI/CD, kỹ thuật nào thường được tích hợp sớm nhất để phát hiện lỗ hổng an toàn?

a)

Kiểm thử tĩnh (SAST)

b)

Kiểm thử tương tác (IAST)

c)

Kiểm thử động (DAST)

d)

Không kỹ thuật nào phù hợp

4.

Một hacker thực hiện tấn công CSRF bằng cách gửi một yêu cầu rút tiền giả mạo khi người dùng đang đăng nhập vào tài khoản ngân hàng. Biện pháp nào có thể ngăn chặn điều này?

a)

Kiểm tra HTTP Referer Header

b)

Sử dụng CSRF Token

c)

Yêu cầu nhập lại mật khẩu khi thực hiện giao dịch

d)

Cả (A), (B) và (C) đều đúng

5.

Security Misconfiguration là một lỗ hổng bảo mật thường gặp trong kiểm thử an toàn. Vì dụ nào sau đây biểu hiện của lỗ hổng này?

a)

Cho phép chèn mã JavaScript vào các trường nhập liệu mà không kiểm tra

b)

Sử dụng các cài đặt mặc định trên server và framework mà không được cấu hình an toàn

c)

Sử dụng hàm md5() để mã hóa dữ liệu nhạy cảm

d)

Không mã hóa mật khẩu trong cơ sở dữ liệu

6.

Một ứng dụng PHP cho phép đăng nhập bằng Google OAuth. Làm thế nào để tích hợp phân quyền nội bộ sau khi người dùng đăng nhập?

a)

Sau khi đăng nhập, kiểm tra email của người dùng và gán vai trò dựa trên email domain (ví dụ: @company.com)

b)

Tạo tài khoản mới với vai trò mặc định user và yêu cầu quản trị viên phê duyệt khi cần nâng quyền

c)

Sử dụng bảng users để lưu thông tin OAuth và ánh xạ với hệ thống phân quyền nội bộ

d)

Cả (A) và (C) đều đúng

7.

Token CSRF thường được lưu trữ trong (a)   để dễ dàng so sánh khi xác thực yêu cầu form?

8.

Đoạn mã PHP sau: <?php

echo htmlentities("<script>alert('Tấn công XSS!')</script>");

?> Kết quả khi thực thi đoạn mã trên là gì?

a)

<body>alert('Tấn công XSS!')</body>

b)

Hộp hiển thị thông báo "Tấn công XSS!"

c)

\s cript\alert\('Tấn công XSS!'\)</s cript>

 

d)

<script>alert('Tấn công XSS!')</script>

9.

Trong HTTP Basic Authentication, thông tin tên đăng nhập và mật khẩu được:

a)

Mã hóa bằng AES

b)

Truyền thẳng dạng text

c)

Mã hóa bằng SHA-256

d)

Mã hóa bằng Base64

10.

Hàm nào trong PHP thực hiện việc loại bỏ các ký tự điều khiển có trong đầu vào?

a)

filter_var(), filter_var_array(), filter_input_array(), htmlspecialchars()

b)

filter_input(), filter_input_array(), htmlspecialchars()

c)

filter_var(), filter_var_array(), filter_input(), filter_input_array()

d)

filter_var(), filter(), htmlentities()

11.

Nếu không dùng HTTPS, xác thực HTTP Basic gặp nguy cơ lớn nhất?

a)

Giao diện thân thiện

b)

Thông tin đăng nhập bị dễ dàng giải mã khi bị nghe lén

c)

Không hỗ trợ trình duyệt cũ

d)

Tài khoản bị khóa sau nhiều lần nhập sai

12.

Một website tin tức dùng plugin bình luận miễn phí từ bên thứ ba. Plugin này đã lâu không được cập nhật và có lỗ hổng XSS được công bố rộng rãi. Quản trị viên vẫn để chạy mặc định. Đây là biểu hiện của lỗ hổng nào?

a)

Vulnerable and Outdated Components

b)

Broken Access Control

c)

Security Misconfiguration

d)

Injection

13.

A10: Server-Side Request Forgery (SSRF) là gì?

a)

Khi người dùng gửi yêu cầu giả mạo đến máy chủ để truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

b)

Khi ứng dụng không xác thực đúng yêu cầu từ máy khách, kẻ tấn công để truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

c)

Khi kẻ tấn công lợi dụng các chức năng gửi yêu cầu từ phía máy chủ để truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

d)

Khi dữ liệu thông lưu trữ có lỗ hổng được mã hóa, kẻ tấn công có thể truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

14.

Trong một ứng dụng web thương mại điện tử, nhóm phát triển muốn ngăn chặn tình huống kẻ tấn công thay đổi ID trong URL để xem giỏ hàng/thông tin của người khác. Để giảm thiểu nguy cơ này, biện pháp nào là quan trọng nhất?

a)

Sử dụng token phiên đăng nhập (session token) để xác thực danh tính người dùng

b)

Sử dụng giao thức HTTPS (SSL/TLS) để mã hóa toàn bộ dữ liệu khi truyền trên mạng

c)

Triển khai OAuth/OpenID Connect để xác thực người dùng

d)

Thực hiện kiểm tra quyền truy cập và phân quyền đầy đủ cho từng chức năng và tài nguyên

15.

Cho đoạn mã PHP dưới đây: <?php

$user_input = "' OR 1=1 --";

$safe_input = addslashes($user_input);

$query = "SELECT * FROM users WHERE username = '$safe_input'";

echo $query;

?>

a)

SELECT * FROM users WHERE username = '\' OR 1=1 --'

b)

SELECT * FROM users WHERE username = '\' OR 1=1 --'

c)

SELECT * FROM users WHERE username = '\' OR 1=1\\--'

d)

SELECT * FROM users WHERE username = '\' OR 1=1\-\-'

16.

Khi người dùng đăng nhập thành công, thông tin nào sau đây nên được lưu trữ trong session để về phiên làm việc?

a)

Tên người dùng và mật khẩu

b)

Tất cả thông tin cá nhân của người dùng

c)

Mật khẩu của người dùng

d)

Session ID

17.

Mẫu an toàn (Security Pattern) là:

a)

Một giải thuật mô tả cách thức ngăn ngừa một hiểm họa

b)

Một giải pháp tổng thể cho các vấn đề chung trong thiết kế an toàn phần mềm

c)

Một thiết kế hoàn thiện cho các cơ chế an toàn có thể được chuyển đổi trực tiếp thành mã

d)

Một mẫu mô tả cách thức ngăn ngừa một hiểm họa bằng việc sử dụng các cơ chế an toàn

18.

Khi thực hiện kiểm thử thâm nhập (penetration testing) đối với một ứng dụng web, phát hiện rằng ứng dụng không áp dụng Content Security Policy (CSP). Điều này làm tăng nguy cơ bị khai thác bởi loại tấn công nào?

a)

SQL Injection

b)

Cross-Site Request Forgery (CSRF)

c)

Cross-Site Scripting (XSS)

d)

Insecure Deserialization

19.

Trong hệ thống phân quyền theo vai trò, tại sao nên sử dụng bảng trung gian để lưu mối quan hệ giữa người dùng và vai trò?

a)

Để tối ưu hóa tốc độ truy vấn cơ sở dữ liệu

b)

Để hỗ trợ việc người dùng có thể có nhiều vai trò khác nhau

c)

Để hạn chế người dùng chỉ có một vai trò duy nhất

d)

Để giảm kích thước bảng người dùng

20.

Trong giai đoạn "Thiết kế" của quá trình phát triển phần mềm theo mô hình thác nước (Waterfall model) cần thực hiện biện pháp an toàn nào?

a)

Mẫu thiết kế an toàn, Kiểm thử an toàn

b)

Mô hình hoá hiểm hoạ, Mẫu thiết kế an toàn, Kiểm thử an toàn

c)

Mô hình hoá hiểm hoạ, Kiểm thử an toàn

d)

Mô hình hoá hiểm hoạ, Mẫu thiết kế an toàn

21.

Trong PHP, phương thức nào của lớp mysqli được sử dụng để tạo một truy vấn tham số hoá (prepared statement) an toàn?
$conn = new mysqli($servername, $username, $password, $dbname);

$stmt = $conn->_________("SELECT * FROM product WHERE id = ?");

a)

prepare

b)

create

c)

stmt_init

d)

bind_param

22.

Một trong những cách bảo vệ chống lại Injection là gì?

a)

Mã hóa dữ liệu

b)

Sử dụng firewall

c)

Giới hạn số lượng người dùng truy cập cùng lúc

d)

Kiểm tra dữ liệu đầu vào

23.

Kết quả của việc mô hình hoá hiểm hoạ là:

a)

Danh mục các hiểm hoạ

b)

Danh mục các hiểm hoạ và xếp hạng mức độ ưu tiên của các hiểm hoạ

c)

Danh mục các hiểm hoạ và cách thức xử lý các hiểm hoạ

d)

Danh mục các hiểm hoạ và các cơ chế an toàn

24.

Các biện pháp đảm bảo an toàn phần mềm ở giai đoạn "Phát triển" là:

a)

Mô hình hoá hiểm hoạ (Threat Modeling), Mẫu thiết kế an toàn (Security Design Pattern), Lập trình an toàn (Secure Coding), Kiểm thử an toàn (Testing for Security), Triển khai ứng dụng web an toàn (Secure deployment)

b)

Mô hình hoá hiểm hoạ (Threat Modeling), Mẫu thiết kế an toàn (Security Design Pattern), Lập trình an toàn (Secure Coding), Kiểm thử an toàn (Testing for Security)

c)

Mô hình hoá hiểm hoạ (Threat Modeling), Mẫu thiết kế an toàn (Security Design Pattern)

d)

Mô hình hoá hiểm hoạ (Threat Modeling), Mẫu thiết kế an toàn (Security Design Pattern), Lập trình an toàn (Secure Coding)

25.

Trong chức năng thanh toán trực tuyến, biện pháp bảo mật nào không giúp bảo vệ thông tin thẻ tín dụng của người dùng?

a)

Mã hóa SSL/TLS trong suốt quá trình truyền tải thông tin thẻ tín dụng

b)

Cung cấp thông tin thẻ tín dụng qua email cho người dùng

c)

Giới hạn số lần thử mật khẩu khi nhập thông tin thẻ tín dụng để ngăn chặn các cuộc tấn công brute force

d)

Sử dụng thuật toán băm (hashing) để lưu trữ thẻ tín dụng trong cơ sở dữ liệu

26.

Cách nào dưới đây giúp giảm thiểu Security Misconfiguration?

a)

Thực hiện kiểm tra mã nguồn định kỳ

b)

Triển khai, sử dụng chứng chỉ SSL với các tham số an toàn

c)

Áp dụng chính sách mật khẩu mạnh, phức tạp

d)

Cập nhật và an toàn các cấu hình theo đúng quy chuẩn

27.

Hàm trong PHP thực hiện việc chuyển đổi các ký tự điều khiển thành "escape sequence" tương ứng:

a)

htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), filter_var(), filter_input()

b)

htmlspecialchars(), htmlentities(), filter_var(), filter_input()

c)

htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), filter_var()

d)

htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), PDO::quote()

28.

Có biến $htmlContent = "Laravel Framework"; Trong Blade, muốn hiển thị chữ Laravel in đậm thay vì chuỗi HTML, ta dùng cú pháp nào?

a)

{{ htmlentities($htmlContent) }}

b)

{{ $htmlContent }}

c)

{!! $htmlContent !!}

d)

@{ $htmlContent }

29.

Server-Side Request Forgery (SSRF) là gì?

a)

Khi ứng dụng không xác thực đúng yêu cầu từ máy khách, kẻ tấn công dễ truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

b)

Khi người dùng gửi yêu cầu giả mạo đến máy chủ để truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

c)

Khi kẻ tấn công lợi dụng các chức năng gửi yêu cầu từ phía máy chủ để truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

d)

Khi hệ thống lưu trữ dữ liệu không được mã hóa, kẻ tấn công có thể dễ truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

30.

Cơ chế xác thực OAuth2 chủ yếu được sử dụng để làm gì?

a)

Xác minh mật khẩu người dùng

b)

Cấp quyền cho người dùng truy cập dữ liệu từ ứng dụng của bên thứ ba

c)

Đảm bảo bảo mật các file trên server

d)

Xác thực người dùng trong ứng dụng web

31.

Khi thiết lập giá trị httponly = true điều gì sẽ xảy ra:

a)

Trình duyệt bị tắt javascript

b)

Trình duyệt không được truy cập cookie bằng javascript

c)

Trình duyệt chỉ truyền cookie qua kết nối an toàn

d)

Trình duyệt chỉ sử dụng phương thức HTTP

32.

Lỗ hổng Cross-Site Request Forgery (CSRF) cho phép kẻ tấn công:

a)

Chèn mã độc vào website để đánh cắp thông tin

b)

Bắt người dùng thực hiện các yêu cầu trái phép mà họ không biết

c)

Xâm nhập vào máy chủ và kiểm soát toàn bộ hệ thống

d)

Ngăn người dùng truy cập vào trang web hợp lệ

33.

Một ứng dụng SaaS có log đầy đủ nhưng dữ liệu log quá nhiều, khó phân tích và phát hiện hành vi bất thường. Nhóm bảo mật không đủ nguồn lực để kiểm tra thủ công. Biện pháp nào hợp lý nhất?

a)

Ứng dụng công cụ phân tích log tự động, kết hợp machine learning để phát hiện bất thường

b)

Vô hiệu hóa log không quan trọng để giảm tải cho hệ thống

c)

Tăng cường yêu cầu độ dài mật khẩu và triển khai xác thực đa yếu tố

d)

Sử dụng cơ chế nén và lưu trữ log có tổ chức, đồng thời triển khai giải pháp tối ưu dung lượng lưu trữ cho hệ thống

34.

Trong PHP, chức năng "Chuyển mảng thành một chuỗi" là chức năng của hàm nào trong các hàm sau đây?

a)

implode

b)

explode

c)

array_to_str

d)

array_str

35.

Một lỗ hổng SQL Injection có thể xảy ra nếu ứng dụng không ______ các đầu vào từ người dùng trước khi chèn chúng vào câu lệnh SQL.

a)

Lưu trữ

b)

Kiểm tra kiểu dữ liệu

c)

Mã hóa

d)

Escaping

36.

Hãy điền mã PHP vào chỗ trống để câu lệnh sau thực hiện việc tạo một trường ẩn chứa giá trị của token CSRF được lưu trong biến phiên csrf_token: <input type="hidden" name="ten_bien" value="_________" >

a)

(A) <?php echo $_SESSION['ten_bien'] ?>

b)

(B) <?php echo $_POST['ten_bien'] ?>

c)

(C) <?php $_SESSION['ten_bien'] ?>

d)

(D) <?php $_POST['ten_bien'] ?>

37.

Tấn công được thực hiện trong mô hình trên là gì?

a)

SSRF - Server-Side Request Forgery

b)

Injection

c)

XSS - Cross Site Scripting

d)

CSRF - Cross-site Request Forgery

38.

Một ứng dụng cho phép quản trị viên nhập tên tệp để nén thành file .zip. Kẻ tấn công nhập: file.txt; rm -rf /var/www/html và lệnh hệ thống bị thực thi. Đây là lỗ hổng nào?

a)

Security Misconfiguration

b)

Remote Code Execution

c)

Insecure Design

d)

Injection

39.

Tại sao việc xác thực dựa trên token (token-based authentication) được coi là bảo mật hơn so với xác thực dựa trên session thông thường?

a)

Vì token có thể được lưu trữ trong URL

b)

Vì token có thể được mã hóa và không yêu cầu lưu trữ phía máy chủ

c)

Vì token có thể được sử dụng được nhiều lần trong nhiều trang web khác nhau

d)

Vì token có thể được chia sẻ qua email

40.

Phần Signature của JWT được tạo như thế nào?

a)

Mã hóa toàn bộ token bằng Base64

b)

Ghép chuỗi ngẫu nhiên để tránh trùng lặp

c)

Hash(Header + Payload + Secret) theo thuật toán quy định

d)

Lưu lại mật khẩu của người dùng

41.

Mẫu an toàn (Security Pattern) là:

a)

Một giải thuật mô tả cách thức ngăn ngừa một hiểm họa

b)

Một mẫu mô tả cách thức ngăn ngừa một hiểm họa bằng việc sử dụng các cơ chế an toàn.

c)

Một giải pháp tổng thể cho các vấn đề chung trong thiết kế an toàn phần mềm

d)

Một thiết kế hoàn thiện cho các cơ chế an toàn có thể được chuyển đổi trực tiếp thành mã

42.

Phát biểu nào sau đây sai đối với việc xử lý hợp thức phía máy chủ?

a)

Client hiển thị lại form với dữ liệu đã nhập và các thông báo

b)

Chỉ có thể kiểm tra thông thể

c)

Không cần thiết nếu đã kiểm tra phía client.

d)

Giữ nguyên dữ liệu nhập + mã và thông báo lỗi về client nếu có lỗi nhập liệu

43.

Kết quả thu được như hình về sau cho thấy:

a)

Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột >= 8

b)

Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột > 8

c)

Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột <= 8

d)

Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột < 8

44.

Hàm nào trong PHP chuyển đổi tất cả các ký tự có thể được biểu diễn dưới dạng HTML entity?

a)

utf8_encode()

b)

addslashes()

c)

htmlspecialchars()

d)

htmlentities()

45.

Để đảm bảo an toàn cho ứng dụng web, biện pháp Mô hình hoá hiểm hoạ (threat modeling) ở giai đoạn nào trong quá trình phát triển phần mềm theo mô hình thác nước (Waterfall model)?

a)

Kiểm thử

b)

Khảo sát, phân tích yêu cầu

c)

Thực hiện

d)

Thiết kế

46.

Hàm nào trong PHP thực hiện việc loại bỏ các ký tự điều khiển có trong đầu vào?

a)

filter_var(), filter_var_array(), filter_input_array(), htmlspecialchars()

b)

filter_var(), filter_var_array(), filter_input(), filter_input_array()

c)

filter_var(), htmlentities()

d)

filter_input(), filter_input_array(), htmlspecialchars()

47.

Trong phân quyền sử dụng kỹ thuật cờ (flag), nếu một người dùng vừa có vai trò Giám đốc (với giá trị quyền là 12) vừa có vai trò là Quản trị hệ thống (với giá trị quyền là 7). Người dùng đó có giá trị quyền là:

a)

11

b)

5

c)

17

d)

15

48.

Đặc điểm nào sau đây đúng với Kiểm thử động (DAST - Dynamic Application Security Testing)?

a)

Tích hợp trực tiếp vào quá trình biên dịch mã nguồn

b)

Chỉ hoạt động được nếu có quyền truy cập vào source code

c)

Hoạt động như "hộp đen/hộp xám", kiểm thử ứng dụng khi nó đang chạy

d)

Không liên quan đến môi trường runtime

49.

Trong quá trình kiểm thử an toàn, nếu muốn kiểm tra việc bảo vệ chống lại tấn công Cross-Site Request Forgery (CSRF) của một yêu cầu POST, phương pháp tấn công nào sau đây có thể được sử dụng để phát hiện xem ứng dụng có bị tấn công hay không?

a)

Thực hiện một yêu cầu POST từ trang web khác mà không có token CSRF và quan sát xem hành động trên server có được thực hiện không

b)

Thực hiện chèn các đoạn mã HTML và JavaScript vào các trường nhập liệu của ứng dụng

c)

Thay đổi giá trị của session cookie và kiểm tra phản hồi của ứng dụng

d)

Thực hiện tấn công brute force trên trang đăng nhập

50.

Nếu một ứng dụng web cho phép nhập liệu số điện thoại, kỹ thuật xử lý dữ liệu đầu vào nào là tốt nhất?

a)

Validation

b)

Blacklist

c)

Filtering

d)

Escaping

51.

Một lập trình viên lưu mật khẩu người dùng dưới dạng MD5 không có salt. Điều này có rủi ro gì?

a)

Mật khẩu có thể bị bẻ khóa dễ dàng bằng tấn công từ điển

b)

Hacker có thể thực hiện SQL Injection

c)

Không có rủi ro nào vì MD5 là thuật toán mã hóa an toàn

d)

Người dùng có thể bị tấn công DDoS

52.

Về mặt an toàn, tại sao xử lý hợp thức dữ liệu phía Client chưa là đủ?

a)

Vì dữ liệu có thể bị thay đổi trong quá trình truyền nếu không có cơ chế bảo mật (HTTPS)

b)

Vì người dùng có thể tắt JavaScript hoặc chỉnh sửa request trước khi gửi lên server

c)

Vì xử lý hợp thức phía client chỉ hoạt động trong trình duyệt Chrome, IE

d)

Vì kiểm tra phía client chủ yếu phục vụ trải nghiệm người dùng, không phải đảm bảo an toàn tuyệt đối

53.

Khi thiết lập giá trị httponly=true cho cookie trong ứng dụng web thì điều gì sẽ xảy ra:

a)

Trình duyệt bị tắt javascript

b)

Trình duyệt chỉ sử dụng phương thức HTTP

c)

Trình duyệt chỉ truyền cookie qua kết nối an toàn

d)

Trình duyệt không được truy cập cookie bằng javascript

54.

Một hệ thống đặt phòng khách sạn sử dụng input room_id từ URL để truy vấn cơ sở dữ liệu. Tester thấy code ghép thẳng room_id vào chuỗi SQL. Biện pháp nào là hiệu quả nhất để ngăn SQL Injection?

a)

Hạn chế và tinh chỉnh quyền của tài khoản kết nối tới cơ sở dữ liệu, chỉ cấp các quyền cần thiết cho bảng rooms

b)

Đặt tường lửa ứng dụng web (WAF) để phát hiện, lọc và chặn payload nghi ngờ

c)

Dùng truy vấn tham số hoá (prepared statements)/ORM với parameter binding

d)

Mã hoá giá trị room_id khi gửi lên server để che giấu nội dung truy vấn khỏi tầm nhìn bên ngoài

55.

Ta thường kiểm tra vai trò của người dùng như thế nào để phân quyền truy cập vào các trang hoặc chức năng cụ thể?

a)

Lưu vai trò trong URL và kiểm tra vai trò từ thông qua URL

b)

Không cần kiểm tra vai trò, chỉ kiểm tra thông tin người dùng

c)

So sánh trực tiếp thông tin vai trò từ cơ sở dữ liệu với tên trang

d)

Lưu vai trò trong session sau khi người dùng đăng nhập và kiểm tra session trước khi truy cập trang

56.

Trong kiểm thử an toàn, nếu phát hiện rằng ứng dụng web không sử dụng cơ chế Prepared Statements cho các câu lệnh SQL, điều đó có thể dẫn đến lỗ hổng nào?

a)

SQL Injection

b)

Cross-Site Request Forgery (CSRF)

c)

Cross-Site Scripting (XSS)

d)

Insecure Direct Object References (IDOR)

57.

Một hệ thống thanh toán có luồng refund: khi nhân viên nhập yêu cầu hoàn tiền, hệ thống cho phép chọn "amount" và "account" nhưng không giới hạn tần suất thao tác hoặc ràng buộc số tiền tối đa theo vai trò. Kẻ tấn công nội bộ có thể lặp lại nhiều lần để rút tiền vượt hạn mức. Bản chất lỗ hổng này thuộc lỗ hổng loại nào?

a)

Broken Access Control — thiếu kiểm tra vai trò/ủy quyền để đảm bảo chỉ người có quyền mới thực hiện refund.

b)

Security Logging and Monitoring Failures — Hệ thống không ghi nhật ký và giám sát đầy đủ, khiến hành vi vi phạm dụng khó bị phát hiện.

c)

Security Misconfiguration — cấu hình hệ thống hoặc các chính sách vận hành (ví dụ: rate limiter) chưa được bật hoặc thiết lập sai.

d)

Insecure Design — thiếu ràng buộc nghiệp vụ (rate limit, caps, approval workflow) trong thiết kế.

58.

Câu 93. Cho đoạn mã sau:

<p id="demo"></p>

<script>

    let text1 = " Hello World! ";

    let text2 = text1.trim();

    document.getElementById("demo").innerHTML = "Length text1 = " + text1.length + "<br>Length text2 = " + text2.length;

</script>

Kết quả hiển thị sau khi thực thi đoạn mã này là:

a)

Length text1 = 22 Length text2 = 12

b)

Length text1 = 22 Length text2 = 17

c)

Length text1 = 22 Length text2 = 21

d)

Length text1 = 22 Length text2 = 20

59.

Câu 94. Trong PHP, câu lệnh nào sau đây được sử dụng để khởi tạo một đối tượng SimpleXMLElement nhằm thao tác với dữ liệu XML có trong biến $data?

a)

xml=SimpleXMLElement(xml = SimpleXMLElement( data);

b)

xml=newSimpleXMLElement(xml = new SimpleXMLElement( data);

c)

xml=simplexmlloadstring(xml = simplexml_load_string( data);

d)

xml=newcreateSimpleXMLElement(xml = new createSimpleXMLElement( data);

60.

Câu 95. Trong PHP, hàm htmlspecialchars() khác htmlentities() ở điểm nào?

a)

htmlspecialchars() bỏ qua các ký tự mở rộng, chỉ xử lý các ký tự ASCII cơ bản

b)

htmlspecialchars() chỉ chuyển đổi một số ký tự đặc biệt như <, >, ' , & thành entity HTML

c)

htmlspecialchars() chuyển đổi toàn bộ ký tự có thể biểu diễn được sang entity HTML tương ứng

d)

htmlspecialchars() loại bỏ thẻ HTML thay vì chuyển đổi chúng thành entity

61.

Câu 96. Trên một website thương mại điện tử, sau khi người dùng đăng xuất, session cũ vẫn còn hiệu lực và có thể dùng lại để truy cập. Đây là ví dụ của vấn đề nào?

a)

Server-Side Request Forgery (SSRF)

b)

Vulnerable and Outdated Components

c)

Broken Access Control

d)

Identification and Authentication Failures

62.

Câu 164. Một lỗ hổng SQL Injection có thể xảy ra nếu ứng dụng không ______ các đầu vào từ người dùng trước khi chúng chèn vào câu lệnh SQL.

a)

(A) Lưu trữ (storing)

b)

(B) Escaping (escaping)

c)

(C) Mã hóa (encrypting)

d)

(D) Kiểm tra kiểu dữ liệu (type-checking)

63.

Câu 31. Điểm khác biệt chính giữa REST và SOAP là gì?

a)

(A) REST chỉ chạy trên Windows, còn SOAP chạy trên mọi hệ điều hành

b)

 

(B) REST nhẹ hơn, sử dụng JSON hoặc XML, còn SOAP phức tạp hơn, sử dụng XML

c)

(C) SOAP nhanh hơn REST

d)

(D) SOAP không hỗ trợ bảo mật còn REST có

64.

Câu 32. Đoạn mã PHP sau được viết đúng trong mô hình MVC không?

class UserController {

    public function getUser($id) {

        $db = new Database();

        $user = $db->query("SELECT * FROM users WHERE id = $id");

        include_once(''views/user.php');

    }

}

a)

(A) Sai, View nên thực hiện truy vấn cơ sở dữ liệu

b)

(B) Đúng

c)

(C) Sai, không thể dùng include_once trong Controller

d)

(D) Sai, Controller không nên truy cập trực tiếp vào cơ sở dữ liệu. Model nên xử lý truy vấn cơ sở dữ liệu

65.

Câu 20. Cú pháp nào sau đây sẽ giúp bắt lỗi ngoại lệ (exception) trong PHP?

a)

(A) catch(Exception $e) { }

b)

(B) try { } catch(Exception $e) { }

c)

(C) try { } catch { }

d)

(D) try { } throw { }

66.

Câu 21. Lệnh nào sau đây được sử dụng để xóa một cookie trong PHP?

a)

(A) setcookie("cookie_name", "", time() - 3600);

b)

(B) deletecookie("cookie_name");

c)

(C) setcookie("cookie_name", "", time() + 3600);

d)

(D) unset($_COOKIE["cookie_name"]);

67.

Câu 22. Trong HTML, khi sử dụng thẻ <div> có Class = name thì ở phần khai báo CSS ta đặt tên đối tượng thế nào?

a)

(A) .name

b)

(B) $name

c)

(C) #name

d)

(D) ?name