wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Practice Questions: Web Security Fundamentals (Q92-105)

Total questions: 89

Worksheet time: 45mins

Name
Class
Date
1.

Cho đoạn mã JavaScript: var age = n; var voteable; // ... alert(voteable); Hãy điền vào chỗ chấm câu lệnh để đoạn mã thực thi sẽ đưa ra cảnh báo "Quá trẻ" nếu age dưới 18, nếu không thì cảnh báo "Đủ tuổi".

a)

var voteable = if(age<18)? "Quá trẻ":"Đủ tuổi";

b)

var voteable = (age<18)? "Quá trẻ" : "Đủ tuổi"

c)

var voteable = if(age<18)? "Quá trẻ" "Đủ tuổi"

d)

var voteable = (age<18) ? "Quá trẻ" "Đủ tuổi";

2.

Trong Laravel Blade, cách nào để kế thừa một layout master.blade.php?

a)

@parent('master')

b)

@layout('master')

c)

@include('master')

d)

@extends('master')

3.

Phát biểu nào đúng về cách xuất văn bản trong PHP: "Cách duy nhất để xuất văn bản là sử dụng echo"?

a)

Đúng

b)

Sai

c)

Chỉ đúng với PHP 7 trở lên

d)

Chỉ đúng với CLI

4.

Cho đoạn PHP: echo htmlentities(""); Kết quả khi thực thi là gì?

a)

b)

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

c)

Chuỗi script được mã hóa thành HTML entity và hiển thị như văn bản

d)

Trình duyệt chặn và xóa thẻ script

5.

Biện pháp đảm bảo an toàn phần mềm ở giai đoạn "Phát triển" bao gồm những gì?

a)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Lập trình an toàn, Kiểm thử an toàn, Triển khai ứng dụng web an toàn

b)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Lập trình an toàn, Kiểm thử an toàn

c)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn

d)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Lập trình an toàn

6.

Một hacker thực hiện tấn công CSRF bằng cách gắn yêu cầu rút tiền giả mạo khi người dùng đang đăng nhập vào 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)

Chặn IP đáng ngờ

7.

Khi thiết lập httpOnly=true cho cookie, điều gì sẽ xảy ra?

a)

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

b)

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

c)

Cookie chỉ truyền qua kết nối an toàn

d)

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

8.

Mục tiêu thường thấy của tấn công Cross-Site Scripting (XSS) là gì?

a)

Tấn công máy chủ và xóa dữ liệu

b)

Làm chậm tốc độ tải trang web

c)

Đánh cắp thông tin nhạy cảm từ trình duyệt người dùng

d)

Đánh cắp mật khẩu từ cơ sở dữ liệu

9.

Nội dung trong triển khai ứng dụng web an toàn bao gồm những gì?

a)

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

b)

Chỉ cấu hình TLS

c)

Chỉ cập nhật hệ điều hành

d)

Chỉ thiết lập tường lửa mạng

10.

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

a)

utf8_encode()

b)

htmlspecialchars()

c)

htmlentities()

d)

addslashes()

11.

Theo OWASP, Injection là loại lỗ hổng phổ biến nào?

a)

Lỗi liên quan đến việc không mã hóa đúng dữ liệu đầu ra

b)

Lỗi liên quan đến việc xác thực người dùng không đúng cách

c)

Lỗi liên quan đến việc tiêm mã vào hệ thống hoặc dịch vụ

d)

Lỗi liên quan đến quyền truy cập sai cho người dùng

12.

Trong PHP, điểm khác biệt chính giữa htmlspecialchars() và htmlentities() là gì?

a)

htmlspecialchars() loại bỏ thẻ HTML còn htmlentities() chuyển đổi đối tượng thành entity

b)

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

c)

htmlspecialchars() chuyển đổi toàn bộ ký tự thành entity HTML

d)

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

13.

Biện pháp nào giúp giảm thiểu Security Misconfiguration?

a)

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

b)

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

c)

Áp dụng chính sách mật khẩu mạnh là đủ

d)

Chỉ cần kiểm tra mã nguồn định kỳ

14.

Chọn phát biểu đúng về triển khai cơ chế an toàn ở lớp hạ tầng khi triển khai ứng dụng web an toàn.

a)

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

b)

Chỉ cài Antivirus trên máy chủ web

c)

Chỉ bật HTTPS là đủ

d)

Không cần Reverse Proxy vì gây chậm hệ thống

15.

Kiểm thử an toàn phát hiện lỗ hổng CSRF trong ứng dụng web. Dấu hiệu nào là chỉ báo trực tiếp của lỗ hổng này?

a)

Lưu trữ mật khẩu dạng văn bản thuần

b)

Truy xuất dữ liệu từ cơ sở dữ liệu không an toàn

c)

Sử dụng cookie không được mã hóa

d)

Không có token CSRF trong các yêu cầu POST

16.

Điểm khác biệt chính giữa JWT và Session truyền thống là gì?

a)

JWT chỉ dùng cho API, Session chỉ dùng cho web

b)

JWT lưu trên server, Session lưu trên client

c)

JWT lưu thông tin ở client, Session lưu thông tin trên server

d)

JWT không thể hết hạn, Session thì có

17.

Khi một ứng dụng không áp dụng Content Security Policy (CSP), nguy cơ tấn công nào tăng cao nhất?

a)

Cross-Site Scripting (XSS)

b)

Insecure Deserialization

c)

SQL Injection

d)

Cross-Site Request Forgery (CSRF)

18.

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

a)

Mô hình hóa hiểm họa, Kiểm thử an toàn

b)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn

c)

Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Kiểm thử an toàn

d)

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

19.

Trong HTTP Basic Authentication, thông tin đăng nhập (username, password) được xử lý như thế nào?

a)

Mã hóa bằng SHA-256

b)

Mã hóa bằng AES

c)

Mã hóa bằng Base64

d)

Truyền thẳng dạng text

20.

Tình huống nào là ví dụ điển hình của lỗ hổng Security Misconfiguration?

a)

Ứng dụng dùng phiên bản thư viện/khung làm việc đã có lỗ hổng cho phép khai thác từ xa

b)

Quản trị viên để nguyên tài khoản và mật khẩu mặc định do hệ thống cung cấp

c)

Ứng dụng không kiểm tra ràng buộc dữ liệu nhập vào dẫn đến lỗi xử lý

d)

Hệ thống chỉ hiển thị thông báo lỗi chung chung thay vì chi tiết kỹ thuật

21.

Cơ chế xác thực OAuth2 chủ yếu dùng để làm gì?

a)

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

b)

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

c)

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

d)

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

22.

Trong Laravel Blade, cú pháp {{ $name }} có ý nghĩa gì?

a)

Hiển thị biến $name nhưng bỏ qua các thẻ HTML, chỉ giữ lại nội dung văn bản thuần

b)

Hiển thị giá trị biến $name dưới dạng HTML, giữ nguyên các thẻ và ký tự đặc biệt

c)

Hiển thị giá trị biến $name dưới dạng chuỗi, trong đó các ký tự đặc biệt thay thế bằng ký tự mặc định của Blade

d)

Hiển thị giá trị biến $name, đồng thời các ký tự đặc biệt sẽ được tự động chuyển thành dạng an toàn

23.

Nhóm lập trình tải một gói JavaScript từ kho lưu trữ cộng đồng mà không kiểm tra chữ ký số hay nguồn phát hành. Sau đó phát hiện gói bị cài mã độc đánh cắp dữ liệu. Đây là ví dụ của lỗ hổng nào?

a)

Vulnerable and Outdated Components

b)

Software and Data Integrity Failures

c)

Security Misconfiguration

d)

Injection

24.

Cho biến $htmlContent = "Laravel Framework". Trong Blade, muốn hiển thị chữ "Laravel" in đậm (giữ nguyên HTML), dùng cú pháp nào?

a)

{{ htmlentities($htmlContent) }}

b)

{!! $htmlContent !!}

c)

{{ $htmlContent }}

d)

@{{ $htmlContent }}

25.

Ứng dụng PHP cho phép đăng nhập bằng Google OAuth. Cách tích hợp phân quyền nội bộ sau khi người dùng đăng nhập hợp lý nhất là?

a)

Sau khi đăng nhập, kiểm tra email domain của người dùng và gán vai trò dựa trên 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

26.

Nội dung nào thuộc triển khai ứng dụng web an toàn?

a)

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

b)

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

c)

Thiết lập các cơ chế an toàn trên WebServer và thiết bị an toàn mạng (Firewall, IDS/IPS, WAF, Reverse Proxy, Load Balancer...)

d)

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

27.

Ứng dụng thương mại điện tử: Admin logout session không bị hủy, người khác vẫn truy cập URL quản trị được. Đây là lỗ hổng nào?

a)

CSRF

b)

Broken Authentication/Session Management

c)

Security Misconfiguration

d)

Insecure Direct Object Reference (IDOR)

28.

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. Lỗ hổng nào đang bị khai thác?

a)

Remote Code Execution

b)

Security Misconfiguration

c)

Insure Design

d)

Injection

29.
a)

a

b)

b

c)

c

d)

d

30.

Mẫu an toàn (Security Pattern) là gì?

a)

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

b)

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ã

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 mẫu mô tả cách thức ngăn ngừa một hiểm hoạ bằng việc sử dụng các cơ chế an toàn

31.

Khi kiểm thử ứng dụng web, phát hiện rằng ứng dụng không đặt giới hạn kích thước tải lên tệp tin. Nguy cơ chính có thể xảy ra là gì?

a)

Cross-Site Request Forgery (CSRF)

b)

Tấn công Directory Traversal

c)

Cross-Site Scripting (XSS)

d)

DoS

32.
a)

SSRF - Server-Side Request Forgery

b)

XSS - Cross Site Scripting

c)

Injection

d)

CSRF - Cross-Site Request Forgery

33.

Kết quả của việc mô hình hoá hiểm hoạ (threat modeling) là gì?

a)

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

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ạ

d)

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

34.

Để 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)

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

b)

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

c)

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

d)

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

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. Điền từ còn thiếu.

a)

Mã hoá (encrypting)

b)

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

c)

Lưu trữ (storing)

d)

Escaping (escaping)

36.

Vì sao an toàn, xử lý hợp thức dữ liệu client (client-side validation) là chưa đủ?

a)

Vì dữ liệu có thể 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ì kiểm tra 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

d)

Vì xử lý hợp thức dữ liệu client chỉ hoạt động trong trình duyệt Chrome

37.

Trong hệ thống quản lý dự án, mỗi nhóm có nhiều thành viên và có quyền riêng đối với tài liệu của họ. Cách tiếp cận phân quyền phù hợp nhất?

a)

Tạo một bảng document_permissions để lưu quyền của từng tài liệu và liên kết với người dùng

b)

Tạo một bảng document_permissions để lưu quyền của từng tài liệu và liên kết với người dùng với nhóm

c)

Tạo bảng group_permissions để lưu quyền của từng nhóm và liên kết với người dùng

d)

Tạo bảng user_permissions để lưu quyền của từng người dùng và liên kết với nhóm

38.

Một ứng dụng web cho phép thay đổi mật khẩu mà không yêu cầu mật khẩu cũ. Đây là lỗ hổng thuộc loại nào?

a)

Insecure Design

b)

Identification and Authentication Failures

c)

Security Misconfiguration

d)

Broken Access Control

39.

Trong PHP, phương thức nào của lớp mysqli được dùng để tạo một truy vấn tham số hoá (prepared statement) an toàn? Cho đoạn mã: conn=newmysqli(conn = new mysqli( servername, username,username, password, dbname);dbname); stmt = $conn->_______('SELECT * FROM product WHERE id = ?');

a)

create

b)

stmt_limit

c)

prepare

d)

bind

40.

Đặ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)

Phân tích mã nguồn ứng dụng mà không cần chạy

c)

Chỉ được áp dụng nếu có quyền truy cập vào source code

d)

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

41.

Một công ty y tế gửi email cho bệnh nhân với tệp PDF chứa kết quả xét nghiệm được mã hóa bằng một khóa tĩnh cho tất cả bệnh nhân và khóa này bị hard-code trong source. Đây là ví dụ của lỗ hổng nào?

a)

Cryptographic Failures

b)

Insecure Design

c)

Broken Access Control

d)

Security Misconfiguration

42.

Kiểm thử tĩnh (SAST - Static Application Security Testing) thường được áp dụng ở giai đoạn nào của quá trình phát triển phần mềm?

a)

Chỉ sau khi hoàn tất kiểm thử hệ thống

b)

Ngay từ giai đoạn viết mã nguồn

c)

Khi người dùng đã phản ánh lỗi bảo mật

d)

Khi ứng dụng đã triển khai và chạy trong môi trường thật

43.

Một ứng dụng SaaS có log đầy đủ nhưng dữ liệu lưu lượng lớn. Để phát hiện hành vi bất thường hiệu quả, biện pháp phù hợp là gì?

a)

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

b)

Ứ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

c)

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

d)

Sử dụng cơ chế nén và lưu trữ log cố động để tối ưu lưu trữ

44.

Khi kiểm thử một ứng dụng web, phát hiện session cookie không có thuộc tính Secure. Điều này làm tăng nguy cơ nào?

a)

Cross-Site Request Forgery (CSRF) khi người dùng đang đăng nhập

b)

Cross-Site Scripting (XSS) khi hiển thị dữ liệu

c)

Session Hijacking khi người dùng truy cập qua HTTP thay vì HTTPS

d)

SQL Injection thông qua các yêu cầu GET

45.

Trong hệ thống phân quyền theo vai trò, tại sao nên 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)

Để giảm kích thước bảng cơ sở dữ liệu

d)

Để tránh việc lưu trữ quá nhiều thông tin người dùng

46.

Để bảo đảm an toàn cho ứng dụng web, mô hình hóa hiểm họa (threat modeling) nên được thực hiện ở giai đoạn nào trong mô hình thác nước?

a)

Thực hiện

b)

Kiểm thử

c)

Thiết kế

d)

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

47.

Trên một website thương mại điện tử, sau khi người dùng đăng xuất nhưng 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)

Identification and Authentication Failures

b)

Server-Side Request Forgery (SSRF)

c)

Vulnerable and Outdated Components

d)

Broken Access Control

48.

JWT thường được sử dụng với mục đích gì trong hệ thống web?

a)

Xác thực và truyền tải thông tin giữa các bên một cách an toàn

b)

Lưu trữ dữ liệu lớn trên server

c)

Tối ưu hóa cơ sở dữ liệu

d)

Tăng tốc độ render giao diện

49.

Hình ảnh hiển thị lỗi "Unknown column '8' in 'order clause'" sau khi thêm "order by 8--" vào tham số truy vấn. Kết luận đúng là gì?

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

50.

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

a)

filter_input(), filter_input_array(), htmlspecialchars()

b)

filter_var(), filter_var_array(), htmlspecialchars()

c)

filter_var(), filter(), htmlentities()

d)

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

51.

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

a)

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

b)

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

c)

Giao diện không thân thiện

d)

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

52.

Một website tin tức vô tình để trang quản trị /admin/config công khai, không giới hạn IP và không yêu cầu xác thực bổ sung. Đây là ví dụ của lỗ hổng nào?

a)

Security Misconfiguration

b)

Broken Access Control

c)

Insecure Design

d)

Cryptographic Failures

53.

Phát biểu nào mô tả đúng nhất sự khác nhau giữa DAST và SAST?

a)

DAST phân tích mã nguồn, SAST kiểm thử khi ứng dụng đang chạy

b)

DAST là hộp đen/hộp xám chạy trên ứng dụng đang hoạt động, SAST phân tích mã khi viết

c)

Cả hai chỉ chạy sau triển khai

d)

Cả hai yêu cầu quyền truy cập source code

54.

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. Biện pháp nào quan trọng nhất để giảm thiểu rủi ro Broken Access Control?

a)

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

b)

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

c)

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

d)

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

55.

Hàm nào được dùng để xác thực mật khẩu trong PHP khi so sánh mật khẩu người dùng nhập với mật khẩu đã được băm?

a)

password_verify()

b)

hash_equals()

c)

password_compare()

d)

strcmp()

56.

Tình huống nào là ví dụ điển hình của Security Misconfiguration?

a)

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

b)

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

c)

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

d)

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

57.

Trong phân quyền sử dụng kỹ thuật cờ (flag), nếu một người dùng có vai trò Giám đốc (giá trị quyền 12) và Quản trị hệ thống (giá trị quyền 3), giá trị quyền kết hợp sẽ là bao nhiêu?

a)

5

b)

17

c)

15

d)

11

58.

Trong hình minh họa SQL injection, các số 2,3,4,5 hiển thị trong bảng có ý nghĩa gì?

a)

Chỉ có những trường tương ứng với những số này nằm trong câu truy vấn phía trước

b)

Chỉ có những giá trị của trường tương ứng với những số này trong câu truy vấn mới hiển thị trên bảng

c)

Chỉ có những trường tương ứng với những số này trong câu truy vấn mới giống với câu truy vấn phía trước

d)

Chỉ có những trường tương ứng với những số này nằm trong cơ sở dữ liệu

59.

Nhóm hàm PHP nào thực hiện việc chuyển đổi các ký tự điều khiển thành "escape sequence" tương ứng để phòng XSS/SQLi?

a)

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

b)

htmlspecialchars(), htmlentities(), mysql_real_escape_string(), filter_var()

c)

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

d)

htmlspecialchars(), htmlentities(), mysql_real_escape_string(), PDO::quote()

60.

Trong PHP, chức năng "Chuyển một mảng thành một chuỗi" thuộc về hàm nào?

a)

implode

b)

array_to_str

c)

array__to_str

d)

explode

61.

Khi kiểm thử bảo vệ CSRF cho một yêu cầu POST, phương pháp tấn công nào giúp phát hiện ứng dụng có thể bị tấn công?

a)

Chèn mã HTML và JavaScript vào các trường nhập liệu

b)

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

c)

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

d)

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

62.

Ứng dụng lưu trữ session ID trong cookie mà không dùng thuộc tính HttpOnly có thể dẫn đến lỗ hổng bảo mật nào?

a)

Insecure Deserialization thông qua cookie

b)

SQL Injection thông qua session ID

c)

Session Hijacking thông qua XSS

d)

Clickjacking thông qua session ID

63.

Không sử dụng Prepared Statements cho các câu lệnh SQL có thể dẫn đến lỗ hổng nào?

a)

SQL Injection

b)

Cross-Site Scripting (XSS)

c)

Cross-Site Request Forgery (CSRF)

d)

Insecure Direct Object References (IDOR)

64.

Cách kiểm tra vai trò người dùng để phân quyền truy cập vào trang/chức năng cụ thể hiệu quả nhất là gì?

a)

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

b)

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

c)

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

d)

Lưu vai trò trong URL và kiểm tra qua URL

65.

Cho đoạn mã PHP: password=secret;password = 'secret'; hash = password_hash($password, PASSWORD_DEFAULT); Câu nào đúng nhất?

a)

password_hash tạo bản băm có muối và phiên bản thuật toán có thể thay đổi qua PASSWORD_DEFAULT

b)

password_hash tạo bản băm cố định, không chứa muối

c)

PASSWORD_DEFAULT luôn là bcrypt và sẽ không thay đổi theo phiên bản PHP

d)

Nên so sánh mật khẩu bằng strcmp với chuỗi băm để tối ưu hiệu năng

66.

Biện pháp nào giúp bảo vệ session khỏi bị đánh cắp trong ứng dụng web sử dụng session để quản lý đăng nhập?

a)

Tắt tính năng ghi nhớ session trong trình duyệt

b)

Lưu trữ session ID trong cơ sở dữ liệu của ứng dụng thay vì cookie

c)

Giới hạn số lượng phiên đăng nhập đồng thời cho mỗi tài khoản

d)

Sử dụng session ID dài và ngẫu nhiên

67.

Sau 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 để bảo vệ phiên làm việc?

a)

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

b)

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

c)

Session ID

d)

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

68.

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. Chọn phương án đúng để điền vào chỗ trống.

a)

Lưu trữ

b)

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

c)

Escaping

d)

Mã hóa

69.

Trong chức năng thanh toán trực tuyến, biện pháp nào nên nâng cao bảo vệ hệ thống tin cậy của người dùng?

a)

Giới hạn số lần thử nhập mật khẩu, nhập tin đúng thẻ tín dụng để ngăn brute force

b)

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

c)

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

d)

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

70.

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

a)

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

b)

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

c)

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

d)

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

71.

Một hệ thống thanh toán có lỗi refunding: nhân viên 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 có thể lặp lại nhiều lần để rút tiền vượt hạn mức. Lỗi này thuộc loại nào?

a)

Broken Access Control — thiếu kiểm tra vai trò/quyền

b)

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

c)

Security Misconfiguration — cấu hình hệ thống hoặc chính sách vận hành chưa được bật/thiết lập sai

d)

Security Logging and Monitoring Failures — hệ thống không ghi nhật ký và giám sát đầy đủ

72.

Khi server muốn yêu cầu client xác thực bằng HTTP Basic, mã trạng thái nào sẽ được gửi?

a)

403 Forbidden

b)

200 OK

c)

407 Proxy Authentication Required

d)

401 Unauthorized

73.

Lý do nên sử dụng tiêu chuẩn nào để bảo vệ thông tin xác thực và giao tiếp API trong PHP?

a)

Basic Authentication với HTTPS

b)

Sử dụng form đăng nhập với HTTPS

c)

Lưu thông tin đăng nhập trong local storage

d)

JWT (JSON Web Token) qua HTTPS

74.

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

a)

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

b)

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

c)

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

d)

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

75.

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

a)

Local Storage

b)

Database

c)

Cookie

d)

Session

76.

Để bảo vệ ứng dụng PHP khỏi Cross-Site Scripting (XSS), các đầu ra từ người dùng nên được xử lý bằng hàm nào?

a)

htmlspecialchars()

b)

strip_tags()

c)

mysql_real_escape_string()

d)

addslashes()

77.

Tại sao việc sử dụng CSRF Token có thể giúp ngăn chặn tấn công Cross-Site Request Forgery? Chọn phương án đúng nhất.

a)

Token hoạt động như một cơ chế xác thực thay thế, cho phép người dùng truy cập hệ thông mà không cần dùng mật khẩu

b)

Token buộc yêu cầu phải kèm giá trị bí mật khớp với session hợp lệ, ngăn kẻ tấn công gửi yêu cầu giả mạo từ trang khác

c)

Token giúp mã hóa toàn bộ nội dung form để kẻ tấn công không đọc được

d)

Token chỉ dùng để ghi log các yêu cầu nhằm phát hiện tấn công sau này

78.

Trong PHP, hàm nào thực hiện loại bỏ các ký tự điều khiển trong đầu vào để hỗ trợ lọc/sanitization?

a)

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

b)

filter_var(), filter(), htmlentities()

c)

filter_input(), filter_input_array(), htmlspecialchars()

d)

filter_var(), filter_var_array(), filter_input(), htmlspecialchars()

79.

Hàm PHP nào chuyển đổi các ký tự đặc biệt như <, >, ' , & thành mã HTML tương ứng để ngăn XSS?

a)

urlencode()

b)

htmlentities()

c)

strip_tags()

d)

htmlspecialchars()

80.

Biện pháp hiệu quả nhất để ngăn người dùng truy cập trái phép các chức năng hoặc dữ liệu trong ứng dụng web là gì?

a)

Mã hóa dữ liệu nhạy cảm để ngăn truy cập trái phép

b)

Hiển thị các chức năng nhạy cảm chỉ trên giao diện quản trị viên, không kiểm tra trên server

c)

Kiểm tra quyền truy cập của người dùng trên mỗi yêu cầu và chỉ cho phép thực hiện nếu có quyền phù hợp

d)

Chỉ cho phép người dùng truy cập khi người dùng đăng nhập lần đầu tiên, sau đó lưu trạng thái

81.

Khi làm việc với hệ thống xác thực qua API trong PHP, tiêu chuẩn nào nên dùng để bảo vệ thông tin xác thực của người dùng và giao tiếp API?

a)

Basic Authentication với HTTPS

b)

Sử dụng form đăng nhập với HTTPS

c)

Lưu thông tin đăng nhập trong local storage

d)

JWT (JSON Web Token) qua HTTPS

82.

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 dễ truy cập vào các tài nguyên bên ngoài hoặc nhạy cảm

c)

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

d)

Khi kẻ tấn công lợi dụng các chức năng 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

83.

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

a)

Sử dụng firewall

b)

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

c)

Mã hóa dữ liệu

d)

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

84.

Biện pháp nào giúp bảo vệ session khỏi bị đánh cắp?

a)

Tắt tính năng ghi nhớ session trong trình duyệt

b)

Lưu trữ session ID trong cơ sở dữ liệu của ứng dụng thay vì cookie

c)

Giới hạn số lượng phiên đăng nhập đồng thời cho mỗi tài khoản

d)

Sử dụng session ID dài và ngẫu nhiên

85.

Mục tiêu chính của việc sử dụng htmlspecialchars() trong các biểu mẫu web là gì?

a)

Chuyển đổi toàn bộ dữ liệu sang JSON

b)

Ngăn chặn SQL Injection bằng cách escape truy vấn

c)

Chuyển ký tự đặc biệt thành thực thể HTML để tránh chèn mã độc vào DOM

d)

Tạo token CSRF tự động cho form

86.

Trong quy trình đổi mật khẩu an toàn, bước nào sau đây là bắt buộc để ngăn đổi mật khẩu trái phép?

a)

Không yêu cầu mật khẩu hiện tại

b)

Yêu cầu xác thực người dùng (ví dụ: phiên hợp lệ) và kiểm tra CSRF token hợp lệ

c)

Chỉ kiểm tra độ mạnh của mật khẩu mới

d)

Gửi email xác nhận sau khi đổi mật khẩu

87.

Trong kiểm soát truy cập, tại sao phải kiểm tra quyền trên mỗi yêu cầu thay vì chỉ sau khi đăng nhập?

a)

Vì giúp giảm tải cho cơ sở dữ liệu

b)

Vì quyền có thể thay đổi theo ngữ cảnh tác vụ và cần xác nhận liên tục

c)

Vì trình duyệt không lưu cookie lâu

d)

Vì HTTPS yêu cầu như vậy

88.

Biện pháp nào giúp giảm nguy cơ CSRF trong ứng dụng PHP?

a)

Sử dụng GET cho các hành động thay đổi trạng thái

b)

Thêm token CSRF duy nhất cho mỗi phiên và xác thực token với yêu cầu POST

c)

Lưu token trong local storage để JS kiểm tra

d)

Ẩn nút gửi form bằng CSS

89.

Khi triển khai API authentication, phương án nào dưới đây là sai và dễ gây rủi ro bảo mật?

a)

Gửi JWT qua HTTPS

b)

Lưu trữ thông tin đăng nhập trong local storage không mã hóa

c)

Xác thực token ở server

d)

Gia hạn token hợp lý và thu hồi khi cần