Font size
WorksheetsPractice Questions: Web Security Fundamentals (Q92-105)
Total questions: 89
Worksheet time: 45mins
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".
var voteable = if(age<18)? "Quá trẻ":"Đủ tuổi";
var voteable = (age<18)? "Quá trẻ" : "Đủ tuổi"
var voteable = if(age<18)? "Quá trẻ" "Đủ tuổi"
var voteable = (age<18) ? "Quá trẻ" "Đủ tuổi";
Trong Laravel Blade, cách nào để kế thừa một layout master.blade.php?
@parent('master')
@layout('master')
@include('master')
@extends('master')
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"?
Đúng
Sai
Chỉ đúng với PHP 7 trở lên
Chỉ đúng với CLI
Cho đoạn PHP: echo htmlentities(""); Kết quả khi thực thi là gì?
Hộp hiển thị thông báo 'Tấn công XSS!'
Chuỗi script được mã hóa thành HTML entity và hiển thị như văn bản
Trình duyệt chặn và xóa thẻ script
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ì?
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
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
Mô hình hóa hiểm họa, Mẫu thiết kế an toàn
Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Lập trình an toàn
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?
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
Chặn IP đáng ngờ
Khi thiết lập httpOnly=true cho cookie, điều gì sẽ xảy ra?
Trình duyệt không được truy cập cookie bằng JavaScript
Trình duyệt chỉ sử dụng phương thức HTTP
Cookie chỉ truyền qua kết nối an toàn
Trình duyệt bị tắt JavaScript
Mục tiêu thường thấy của tấn công Cross-Site Scripting (XSS) là gì?
Tấn công máy chủ và xóa dữ liệu
Làm chậm tốc độ tải trang web
Đánh cắp thông tin nhạy cảm từ trình duyệt người dùng
Đánh cắp mật khẩu từ cơ sở dữ liệu
Nội dung trong triển khai ứng dụng web an toàn bao gồm những gì?
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
Chỉ cấu hình TLS
Chỉ cập nhật hệ điều hành
Chỉ thiết lập tường lửa mạng
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?
utf8_encode()
htmlspecialchars()
htmlentities()
addslashes()
Theo OWASP, Injection là loại lỗ hổng phổ biến nào?
Lỗi liên quan đến việc không mã hóa đúng dữ liệu đầu ra
Lỗi liên quan đến việc xác thực người dùng không đúng cách
Lỗi liên quan đến việc tiêm mã vào hệ thống hoặc dịch vụ
Lỗi liên quan đến quyền truy cập sai cho người dùng
Trong PHP, điểm khác biệt chính giữa htmlspecialchars() và htmlentities() là gì?
htmlspecialchars() loại bỏ thẻ HTML còn htmlentities() chuyển đổi đối tượng thành entity
htmlspecialchars() bỏ qua các ký tự mở rộng còn htmlentities() chỉ xử lý ký tự ASCII
htmlspecialchars() chuyển đổi toàn bộ ký tự thành entity HTML
htmlspecialchars() chỉ chuyển đổi một số ký tự đặc biệt như <, >, ' , " , & thành entity HTML
Biện pháp nào giúp giảm thiểu Security Misconfiguration?
Cập nhật và an toàn các cấu hình hình theo đúng quy chuẩn
Triển khai, sử dụng chứng chỉ SSL với các tham số an toàn là đủ
Áp dụng chính sách mật khẩu mạnh là đủ
Chỉ cần kiểm tra mã nguồn định kỳ
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.
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...)
Chỉ cài Antivirus trên máy chủ web
Chỉ bật HTTPS là đủ
Không cần Reverse Proxy vì gây chậm hệ thống
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?
Lưu trữ mật khẩu dạng văn bản thuần
Truy xuất dữ liệu từ cơ sở dữ liệu không an toàn
Sử dụng cookie không được mã hóa
Không có token CSRF trong các yêu cầu POST
Điểm khác biệt chính giữa JWT và Session truyền thống là gì?
JWT chỉ dùng cho API, Session chỉ dùng cho web
JWT lưu trên server, Session lưu trên client
JWT lưu thông tin ở client, Session lưu thông tin trên server
JWT không thể hết hạn, Session thì có
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?
Cross-Site Scripting (XSS)
Insecure Deserialization
SQL Injection
Cross-Site Request Forgery (CSRF)
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?
Mô hình hóa hiểm họa, Kiểm thử an toàn
Mô hình hóa hiểm họa, Mẫu thiết kế an toàn
Mô hình hóa hiểm họa, Mẫu thiết kế an toàn, Kiểm thử an toàn
Mẫu thiết kế an toàn, Kiểm thử an toàn
Trong HTTP Basic Authentication, thông tin đăng nhập (username, password) được xử lý như thế nào?
Mã hóa bằng SHA-256
Mã hóa bằng AES
Mã hóa bằng Base64
Truyền thẳng dạng text
Tình huống nào là ví dụ điển hình của lỗ hổng Security Misconfiguration?
Ứ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
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
Ứ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ý
Hệ thống chỉ hiển thị thông báo lỗi chung chung thay vì chi tiết kỹ thuật
Cơ chế xác thực OAuth2 chủ yếu dùng để làm gì?
Đảm bảo bảo mật các file trên server
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
Xác thực người dùng trong ứng dụng web
Trong Laravel Blade, cú pháp {{ $name }} có ý nghĩa gì?
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
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
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
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
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?
Vulnerable and Outdated Components
Software and Data Integrity Failures
Security Misconfiguration
Injection
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?
{{ htmlentities($htmlContent) }}
{!! $htmlContent !!}
{{ $htmlContent }}
@{{ $htmlContent }}
Ứ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à?
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)
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
Nội dung nào thuộc triển khai ứng dụng web an toàn?
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
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 và thiết bị an toàn mạng (Firewall, IDS/IPS, WAF, Reverse Proxy, Load Balancer...)
Đáp án (A), (B), (C) đều đúng
Ứ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?
CSRF
Broken Authentication/Session Management
Security Misconfiguration
Insecure Direct Object Reference (IDOR)
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?
Remote Code Execution
Security Misconfiguration
Insure Design
Injection
a
b
c
d
Mẫu an toàn (Security Pattern) là gì?
Một giải thuật mô tả cách thức ngăn ngừa một hiểm hoạ
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 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 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
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ì?
Cross-Site Request Forgery (CSRF)
Tấn công Directory Traversal
Cross-Site Scripting (XSS)
DoS
SSRF - Server-Side Request Forgery
XSS - Cross Site Scripting
Injection
CSRF - Cross-Site Request Forgery
Kết quả của việc mô hình hoá hiểm hoạ (threat modeling) là gì?
Danh mục các hiểm hoạ và các cơ chế an toàn
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ạ
Danh mục các hiểm hoạ và cách thức xử lý các hiểm hoạ
Để 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?
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
Sử dụng xác thực API bằng keys hoặc OAuth
Á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
Giới hạn quyền truy cập API chỉ cho những người dùng có quyền quản trị
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.
Mã hoá (encrypting)
Kiểm tra kiểu dữ liệu (type-checking)
Lưu trữ (storing)
Escaping (escaping)
Vì sao an toàn, xử lý hợp thức dữ liệu client (client-side validation) là chư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)
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ì 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
Vì xử lý hợp thức dữ liệu client chỉ hoạt động trong trình duyệt Chrome
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?
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
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
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
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
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?
Insecure Design
Identification and Authentication Failures
Security Misconfiguration
Broken Access Control
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( servername, username, password, dbname); stmt = $conn->_______('SELECT * FROM product WHERE id = ?');
create
stmt_limit
prepare
bind
Đặ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
Phân tích mã nguồn ứng dụng mà không cần chạy
Chỉ được áp dụng 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
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?
Cryptographic Failures
Insecure Design
Broken Access Control
Security Misconfiguration
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?
Chỉ sau khi hoàn tất kiểm thử hệ thống
Ngay từ giai đoạn viết mã nguồn
Khi người dùng đã phản ánh lỗi bảo mật
Khi ứng dụng đã triển khai và chạy trong môi trường thật
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ì?
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ố
Ứ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 hệ thống
Sử dụng cơ chế nén và lưu trữ log cố động để tối ưu lưu trữ
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?
Cross-Site Request Forgery (CSRF) khi người dùng đang đăng nhập
Cross-Site Scripting (XSS) khi hiển thị dữ liệu
Session Hijacking khi người dùng truy cập qua HTTP thay vì HTTPS
SQL Injection thông qua các yêu cầu GET
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ò?
Để 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
Để giảm kích thước bảng cơ sở dữ liệu
Để tránh việc lưu trữ quá nhiều thông tin người dùng
Để 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?
Thực hiện
Kiểm thử
Thiết kế
Khảo sát, phân tích yêu cầu
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?
Identification and Authentication Failures
Server-Side Request Forgery (SSRF)
Vulnerable and Outdated Components
Broken Access Control
JWT thường được sử dụng với mục đích gì trong hệ thống web?
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
Lưu trữ dữ liệu lớn trên server
Tối ưu hóa cơ sở dữ liệu
Tăng tốc độ render giao diện
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ì?
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 thực hiện việc loại bỏ các ký tự điều khiển trong đầu vào (input sanitization)?
filter_input(), filter_input_array(), htmlspecialchars()
filter_var(), filter_var_array(), htmlspecialchars()
filter_var(), filter(), htmlentities()
filter_var(), filter_var_array(), filter_input(), filter_input_array()
Nếu không dùng HTTPS, xác thực HTTP Basic gặp nguy cơ lớn nhất nào?
Thông tin đăng nhập dễ bị giả mạo khi bị nghe lén
Tài khoản bị khóa sau nhiều lần nhập sai
Giao diện không thân thiện
Không hỗ trợ trình duyệt cũ
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?
Security Misconfiguration
Broken Access Control
Insecure Design
Cryptographic Failures
Phát biểu nào mô tả đúng nhất sự khác nhau giữa DAST và SAST?
DAST phân tích mã nguồn, SAST kiểm thử khi ứng dụng đang chạy
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ả hai chỉ chạy sau triển khai
Cả hai yêu cầu quyền truy cập source code
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?
Sử dụng token phiên đăng nhập (session token) để 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
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
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?
password_verify()
hash_equals()
password_compare()
strcmp()
Tình huống nào là ví dụ điển hình của Security Misconfiguration?
Sử dụng hàm md5() để mã hóa dữ liệu nhạy cảm
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
Không mã hóa mật khẩu trong cơ sở dữ liệu
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?
5
17
15
11
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ì?
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
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
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
Chỉ có những trường tương ứng với những số này nằm trong cơ sở dữ liệu
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?
htmlspecialchars(), htmlentities(), filter_var(), filter_input()
htmlspecialchars(), htmlentities(), mysql_real_escape_string(), filter_var()
htmlspecialchars(), htmlentities(), mysql_real_escape_string(), filter_var(), filter_input()
htmlspecialchars(), htmlentities(), mysql_real_escape_string(), PDO::quote()
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?
implode
array_to_str
array__to_str
explode
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?
Chèn mã HTML và JavaScript vào các trường nhập liệu
Thay đổi giá trị của session cookie và kiểm tra phản hồi
Thực hiện brute force trên trang đăng nhập
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
Ứ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?
Insecure Deserialization thông qua cookie
SQL Injection thông qua session ID
Session Hijacking thông qua XSS
Clickjacking thông qua session ID
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?
SQL Injection
Cross-Site Scripting (XSS)
Cross-Site Request Forgery (CSRF)
Insecure Direct Object References (IDOR)
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ì?
Không kiểm tra vai trò, chỉ kiểm tra thông tin người dùng
So sánh trực tiếp tên vai trò từ cơ sở dữ liệu với tên trang
Lưu vai trò trong session sau khi đăng nhập và kiểm tra session trước khi truy cập trang
Lưu vai trò trong URL và kiểm tra qua URL
Cho đoạn mã PHP: password=′secret′; hash = password_hash($password, PASSWORD_DEFAULT); Câu nào đúng nhất?
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
password_hash tạo bản băm cố định, không chứa muối
PASSWORD_DEFAULT luôn là bcrypt và sẽ không thay đổi theo phiên bản PHP
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
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?
Tắt tính năng ghi nhớ session trong trình duyệt
Lưu trữ session ID trong cơ sở dữ liệu của ứng dụng thay vì cookie
Giới hạn số lượng phiên đăng nhập đồng thời cho mỗi tài khoản
Sử dụng session ID dài và ngẫu nhiên
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?
Mật khẩu băm của người dùng
Tất cả thông tin cá nhân của người dùng
Session ID
Tên người dùng và mật khẩu
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.
Lưu trữ
Kiểm tra kiểu dữ liệu
Escaping
Mã hóa
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?
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
Mã hóa SSL/TLS trong suốt quá trình truyền tải thông tin thẻ tín dụng
Sử dụng thuật toán băm để lưu trữ thẻ tín dụng trong cơ sở dữ liệu
Cung cấp thông tin thẻ tín dụng qua email cho người dùng
Phần Signature của JWT được tạo như thế nào?
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
Mã hóa toàn bộ token bằng Base64
Lưu lại mật khẩu của người dùng
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?
Broken Access Control — thiếu kiểm tra vai trò/quyền
Insecure Design — thiếu ràng buộc nghiệp vụ (rate limit, caps, approval workflow) trong thiết kế
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
Security Logging and Monitoring Failures — hệ thống không ghi nhật ký và giám sát đầy đủ
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?
403 Forbidden
200 OK
407 Proxy Authentication Required
401 Unauthorized
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?
Basic Authentication với HTTPS
Sử dụng form đăng nhập với HTTPS
Lưu thông tin đăng nhập trong local storage
JWT (JSON Web Token) qua HTTPS
Khi thiết lập giá trị httpOnly=true cho cookie trong ứng dụng web, điều gì sẽ xảy ra?
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
Trình duyệt bị tắt JavaScript
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?
Local Storage
Database
Cookie
Session
Để 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?
htmlspecialchars()
strip_tags()
mysql_real_escape_string()
addslashes()
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.
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
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
Token giúp mã hóa toàn bộ nội dung form để kẻ tấn công không đọc được
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
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?
filter_var(), filter_var_array(), filter_input(), filter_input_array()
filter_var(), filter(), htmlentities()
filter_input(), filter_input_array(), htmlspecialchars()
filter_var(), filter_var_array(), filter_input(), htmlspecialchars()
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?
urlencode()
htmlentities()
strip_tags()
htmlspecialchars()
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ì?
Mã hóa dữ liệu nhạy cảm để ngăn truy cập trái phép
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
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
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
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?
Basic Authentication với HTTPS
Sử dụng form đăng nhập với HTTPS
Lưu thông tin đăng nhập trong local storage
JWT (JSON Web Token) qua HTTPS
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 dễ 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
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
Một trong những cách hiệu quả để bảo vệ chống lại Injection là gì?
Sử dụng firewall
Kiểm tra dữ liệu đầu vào
Mã hóa dữ liệu
Giới hạn số lượng người dùng truy cập cùng lúc
Biện pháp nào giúp bảo vệ session khỏi bị đánh cắp?
Tắt tính năng ghi nhớ session trong trình duyệt
Lưu trữ session ID trong cơ sở dữ liệu của ứng dụng thay vì cookie
Giới hạn số lượng phiên đăng nhập đồng thời cho mỗi tài khoản
Sử dụng session ID dài và ngẫu nhiên
Mục tiêu chính của việc sử dụng htmlspecialchars() trong các biểu mẫu web là gì?
Chuyển đổi toàn bộ dữ liệu sang JSON
Ngăn chặn SQL Injection bằng cách escape truy vấn
Chuyển ký tự đặc biệt thành thực thể HTML để tránh chèn mã độc vào DOM
Tạo token CSRF tự động cho form
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?
Không yêu cầu mật khẩu hiện tại
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ệ
Chỉ kiểm tra độ mạnh của mật khẩu mới
Gửi email xác nhận sau khi đổi mật khẩu
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?
Vì giúp giảm tải cho cơ sở dữ liệu
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
Vì trình duyệt không lưu cookie lâu
Vì HTTPS yêu cầu như vậy
Biện pháp nào giúp giảm nguy cơ CSRF trong ứng dụng PHP?
Sử dụng GET cho các hành động thay đổi trạng thái
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
Lưu token trong local storage để JS kiểm tra
Ẩn nút gửi form bằng CSS
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?
Gửi JWT qua HTTPS
Lưu trữ thông tin đăng nhập trong local storage không mã hóa
Xác thực token ở server
Gia hạn token hợp lý và thu hồi khi cần
