Font size
WorksheetsBảo mật ứng dụng web và PHP – Trắc nghiệm tổng hợp
Total questions: 67
Worksheet time: 34mins
Để 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?
Giới hạn quyền truy cập API chỉ cho những người dùng có quyền quản trị
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
Á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
Sử dụng xác thực API bằng API keys hoặc OAuth
Các nội dung trong triển khai ứng dụng web an toàn là:
Đáp án (B), (C), (D) đều đúng
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ấu hình WebApp với các tùy chọn an toàn
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...)
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?
Kiểm thử tĩnh (SAST)
Kiểm thử tương tác (IAST)
Kiểm thử động (DAST)
Không kỹ thuật nào phù hợp
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?
Kiểm tra HTTP Referer Header
Sử dụng CSRF Token
Yêu cầu nhập lại mật khẩu khi thực hiện giao dịch
Cả (A), (B) và (C) đều đúng
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?
Cho phép chèn mã JavaScript vào các trường nhập liệu mà không kiểm tra
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
Sử dụng hàm md5() để mã hóa dữ liệu nhạy cảm
Không mã hóa mật khẩu trong cơ sở dữ liệu
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?
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)
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
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ộ
Cả (A) và (C) đều đúng
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?
Đ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ì?
<body>alert('Tấn công XSS!')</body>
Hộp hiển thị thông báo "Tấn công XSS!"
\s cript\alert\('Tấn công XSS!'\)</s cript>
<script>alert('Tấn công XSS!')</script>
Trong HTTP Basic Authentication, thông tin tên đăng nhập và mật khẩu được:
Mã hóa bằng AES
Truyền thẳng dạng text
Mã hóa bằng SHA-256
Mã hóa bằng Base64
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?
filter_var(), filter_var_array(), filter_input_array(), htmlspecialchars()
filter_input(), filter_input_array(), htmlspecialchars()
filter_var(), filter_var_array(), filter_input(), filter_input_array()
filter_var(), filter(), htmlentities()
Nếu không dùng HTTPS, xác thực HTTP Basic gặp nguy cơ lớn nhất?
Giao diện thân thiện
Thông tin đăng nhập bị dễ dàng giải mã khi bị nghe lén
Không hỗ trợ trình duyệt cũ
Tài khoản bị khóa sau nhiều lần nhập sai
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?
Vulnerable and Outdated Components
Broken Access Control
Security Misconfiguration
Injection
A10: Server-Side Request Forgery (SSRF) là gì?
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
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
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
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
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?
Sử dụng token phiên đăng nhập (session token) để xác thực danh tính người dùng
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
Triển khai OAuth/OpenID Connect để xác thực người dùng
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
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;
?>
SELECT * FROM users WHERE username = '\' OR 1=1 --'
SELECT * FROM users WHERE username = '\' OR 1=1 --'
SELECT * FROM users WHERE username = '\' OR 1=1\\--'
SELECT * FROM users WHERE username = '\' OR 1=1\-\-'
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?
Tên người dùng và mật khẩu
Tất cả thông tin cá nhân của người dùng
Mật khẩu của người dùng
Session ID
Mẫu an toàn (Security Pattern) là:
Một giải thuật mô tả cách thức ngăn ngừa một hiểm họa
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
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ã
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
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?
SQL Injection
Cross-Site Request Forgery (CSRF)
Cross-Site Scripting (XSS)
Insecure Deserialization
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ò?
Để tối ưu hóa tốc độ truy vấn cơ sở dữ liệu
Để hỗ trợ việc người dùng có thể có nhiều vai trò khác nhau
Để hạn chế người dùng chỉ có một vai trò duy nhất
Để giảm kích thước bảng người dùng
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?
Mẫu thiết kế an toàn, Kiểm thử an toàn
Mô hình hoá hiểm hoạ, Mẫu thiết kế an toàn, Kiểm thử an toàn
Mô hình hoá hiểm hoạ, Kiểm thử an toàn
Mô hình hoá hiểm hoạ, Mẫu thiết kế an toàn
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 = ?");
prepare
create
stmt_init
bind_param
Một trong những cách bảo vệ chống lại Injection là gì?
Mã hóa dữ liệu
Sử dụng firewall
Giới hạn số lượng người dùng truy cập cùng lúc
Kiểm tra dữ liệu đầu vào
Kết quả của việc mô hình hoá hiểm hoạ là:
Danh mục các hiểm hoạ
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ạ
Danh mục các hiểm hoạ và cách thức xử lý các hiểm hoạ
Danh mục các hiểm hoạ và các cơ chế an toàn
Các biện pháp đảm bảo an toàn phần mềm ở giai đoạn "Phát triển" là:
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)
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)
Mô hình hoá hiểm hoạ (Threat Modeling), Mẫu thiết kế an toàn (Security Design Pattern)
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)
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?
Mã hóa SSL/TLS trong suốt quá trình truyền tải thông tin thẻ tín dụng
Cung cấp thông tin thẻ tín dụng qua email cho người dùng
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
Sử dụng thuật toán băm (hashing) để lưu trữ thẻ tín dụng trong cơ sở dữ liệu
Cách nào dưới đây giúp giảm thiểu Security Misconfiguration?
Thực hiện kiểm tra mã nguồn định kỳ
Triển khai, sử dụng chứng chỉ SSL với các tham số an toàn
Áp dụng chính sách mật khẩu mạnh, phức tạp
Cập nhật và an toàn các cấu hình theo đúng quy chuẩn
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:
htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), filter_var(), filter_input()
htmlspecialchars(), htmlentities(), filter_var(), filter_input()
htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), filter_var()
htmlspecialchars(), htmlentities(), mysqli::real_escape_string(), PDO::quote()
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?
{{ htmlentities($htmlContent) }}
{{ $htmlContent }}
{!! $htmlContent !!}
@{ $htmlContent }
Server-Side Request Forgery (SSRF) là gì?
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
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
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
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
Cơ chế xác thực OAuth2 chủ yếu được sử dụng để làm gì?
Xác minh mật khẩu người dùng
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
Đảm bảo bảo mật các file trên server
Xác thực người dùng trong ứng dụng web
Khi thiết lập giá trị httponly = true điều gì sẽ xảy ra:
Trình duyệt bị tắt javascript
Trình duyệt không được truy cập cookie bằng javascript
Trình duyệt chỉ truyền cookie qua kết nối an toàn
Trình duyệt chỉ sử dụng phương thức HTTP
Lỗ hổng Cross-Site Request Forgery (CSRF) cho phép kẻ tấn công:
Chèn mã độc vào website để đánh cắp thông tin
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
Xâm nhập vào máy chủ và kiểm soát toàn bộ hệ thống
Ngăn người dùng truy cập vào trang web hợp lệ
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?
Ứ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
Vô hiệu hóa log không quan trọng để giảm tải cho hệ thống
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ố
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
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?
implode
explode
array_to_str
array_str
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.
Lưu trữ
Kiểm tra kiểu dữ liệu
Mã hóa
Escaping
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) <?php echo $_SESSION['ten_bien'] ?>
(B) <?php echo $_POST['ten_bien'] ?>
(C) <?php $_SESSION['ten_bien'] ?>
(D) <?php $_POST['ten_bien'] ?>
Tấn công được thực hiện trong mô hình trên là gì?
SSRF - Server-Side Request Forgery
Injection
XSS - Cross Site Scripting
CSRF - Cross-site Request Forgery
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?
Security Misconfiguration
Remote Code Execution
Insecure Design
Injection
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?
Vì token có thể được lưu trữ trong URL
Vì token có thể được mã hóa và không yêu cầu lưu trữ phía máy chủ
Vì token có thể được sử dụng được nhiều lần trong nhiều trang web khác nhau
Vì token có thể được chia sẻ qua email
Phần Signature của JWT được tạo như thế nào?
Mã hóa toàn bộ token bằng Base64
Ghép chuỗi ngẫu nhiên để tránh trùng lặp
Hash(Header + Payload + Secret) theo thuật toán quy định
Lưu lại mật khẩu của người dùng
Mẫu an toàn (Security Pattern) là:
Một giải thuật mô tả cách thức ngăn ngừa một hiểm họa
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.
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
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ã
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ủ?
Client hiển thị lại form với dữ liệu đã nhập và các thông báo
Chỉ có thể kiểm tra thông thể
Không cần thiết nếu đã kiểm tra phía client.
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
Kết quả thu được như hình về sau cho thấy:
Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột >= 8
Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột > 8
Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột <= 8
Câu truy vấn cơ sở dữ liệu tương ứng có kết quả có số cột < 8
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?
utf8_encode()
addslashes()
htmlspecialchars()
htmlentities()
Để đả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)?
Kiểm thử
Khảo sát, phân tích yêu cầu
Thực hiện
Thiết kế
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?
filter_var(), filter_var_array(), filter_input_array(), htmlspecialchars()
filter_var(), filter_var_array(), filter_input(), filter_input_array()
filter_var(), htmlentities()
filter_input(), filter_input_array(), htmlspecialchars()
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à:
11
5
17
15
Đặc điểm nào sau đây đúng với Kiểm thử động (DAST - Dynamic Application Security Testing)?
Tích hợp trực tiếp vào quá trình biên dịch mã nguồn
Chỉ hoạt động được nếu có quyền truy cập vào source code
Hoạt động như "hộp đen/hộp xám", kiểm thử ứng dụng khi nó đang chạy
Không liên quan đến môi trường runtime
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?
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
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
Thay đổi giá trị của session cookie và kiểm tra phản hồi của ứng dụng
Thực hiện tấn công brute force trên trang đăng nhập
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?
Validation
Blacklist
Filtering
Escaping
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ì?
Mật khẩu có thể bị bẻ khóa dễ dàng bằng tấn công từ điển
Hacker có thể thực hiện SQL Injection
Không có rủi ro nào vì MD5 là thuật toán mã hóa an toàn
Người dùng có thể bị tấn công DDoS
Về mặt an toàn, tại sao xử lý hợp thức dữ liệu phía Client chưa là đủ?
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)
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
Vì xử lý hợp thức phía client chỉ hoạt động trong trình duyệt Chrome, IE
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
Khi thiết lập giá trị httponly=true cho cookie trong ứng dụng web thì điều gì sẽ xảy ra:
Trình duyệt bị tắt javascript
Trình duyệt chỉ sử dụng phương thức HTTP
Trình duyệt chỉ truyền cookie qua kết nối an toàn
Trình duyệt không được truy cập cookie bằng javascript
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?
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
Đặt tường lửa ứng dụng web (WAF) để phát hiện, lọc và chặn payload nghi ngờ
Dùng truy vấn tham số hoá (prepared statements)/ORM với parameter binding
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
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ể?
Lưu vai trò trong URL và kiểm tra vai trò từ thông qua URL
Không cần kiểm tra vai trò, chỉ kiểm tra thông tin người dùng
So sánh trực tiếp thông tin vai trò từ cơ sở dữ liệu với tên trang
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
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?
SQL Injection
Cross-Site Request Forgery (CSRF)
Cross-Site Scripting (XSS)
Insecure Direct Object References (IDOR)
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?
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.
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.
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.
Insecure Design — thiếu ràng buộc nghiệp vụ (rate limit, caps, approval workflow) trong thiết kế.
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à:
Length text1 = 22 Length text2 = 12
Length text1 = 22 Length text2 = 17
Length text1 = 22 Length text2 = 21
Length text1 = 22 Length text2 = 20
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?
xml=SimpleXMLElement( data);
xml=newSimpleXMLElement( data);
xml=simplexmlloadstring( data);
xml=newcreateSimpleXMLElement( data);
Câu 95. Trong PHP, hàm htmlspecialchars() khác htmlentities() ở điểm nào?
htmlspecialchars() bỏ qua các ký tự mở rộng, chỉ xử lý các ký tự ASCII cơ bản
htmlspecialchars() chỉ chuyển đổi một số ký tự đặc biệt như <, >, ' , & thành entity HTML
htmlspecialchars() chuyển đổi toàn bộ ký tự có thể biểu diễn được sang entity HTML tương ứng
htmlspecialchars() loại bỏ thẻ HTML thay vì chuyển đổi chúng thành entity
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?
Server-Side Request Forgery (SSRF)
Vulnerable and Outdated Components
Broken Access Control
Identification and Authentication Failures
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) Lưu trữ (storing)
(B) Escaping (escaping)
(C) Mã hóa (encrypting)
(D) Kiểm tra kiểu dữ liệu (type-checking)
Câu 31. Điểm khác biệt chính giữa REST và SOAP là gì?
(A) REST chỉ chạy trên Windows, còn SOAP chạy trên mọi hệ điều hành
(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) SOAP nhanh hơn REST
(D) SOAP không hỗ trợ bảo mật còn REST có
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) Sai, View nên thực hiện truy vấn cơ sở dữ liệu
(B) Đúng
(C) Sai, không thể dùng include_once trong Controller
(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
Câu 20. Cú pháp nào sau đây sẽ giúp bắt lỗi ngoại lệ (exception) trong PHP?
(A) catch(Exception $e) { }
(B) try { } catch(Exception $e) { }
(C) try { } catch { }
(D) try { } throw { }
Câu 21. Lệnh nào sau đây được sử dụng để xóa một cookie trong PHP?
(A) setcookie("cookie_name", "", time() - 3600);
(B) deletecookie("cookie_name");
(C) setcookie("cookie_name", "", time() + 3600);
(D) unset($_COOKIE["cookie_name"]);
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) .name
(B) $name
(C) #name
(D) ?name
