Chủ đề của HOD402 - Thâm nhập thử và phòng thủ

HOD402 - Phần 6: Lỗ hổng ứng dụng web

Lỗi ứng dụng web thường dẫn thẳng tới dữ liệu. Lớp lỗi hay bị coi nhẹ là phân quyền: đổi một mã số trên đường dẫn là đọc được hồ sơ người khác, vì máy chủ chỉ kiểm đã đăng nhập chứ không kiểm có quyền. Lỗi tiêm mã xảy ra khi dữ liệu người dùng được ghép thẳng vào câu truy vấn cơ sở dữ liệu hay lệnh hệ điều hành; lỗi nạp tệp trỏ ứng dụng tới tệp ngoài ý muốn. Máy quét tự động hầu như không thấy lỗi logic nghiệp vụ, như áp một mã giảm giá hai lần. Tấn công chèn kịch bản liên trang thì nhắm vào trình duyệt của người dùng khác thay vì máy chủ. Với mỗi lớp, trọng tâm là cơ chế gốc và cách sửa tận gốc: truy vấn tham số hoá, kiểm quyền phía máy chủ, mã hoá đầu ra theo ngữ cảnh. Người học nhận diện được lớp lỗi từ hành vi của ứng dụng và chỉ ra được đoạn mã cần đổi.

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

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

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

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

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

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

20/20 câuHết danh sách
AUPDATE
BDELETE
CINSERT
DSELECT
Lời giải
Đáp án đúng: "SELECT". Trong SQL, SELECT là câu lệnh truy vấn dùng để đọc các bản ghi từ một hay nhiều bảng, có thể kèm WHERE để lọc và ORDER BY để sắp xếp; đây cũng là câu lệnh mà các kỹ thuật SQL injection thường nhắm tới khi muốn rút dữ liệu ra ngoài. "UPDATE" dùng để sửa giá trị của các bản ghi đã có, không nhằm trả dữ liệu về. "DELETE" dùng để xoá bản ghi khỏi bảng. "INSERT" dùng để thêm bản ghi mới vào bảng. Các lệnh UPDATE, DELETE, INSERT đều thuộc nhóm thao tác làm thay đổi dữ liệu, trong khi câu hỏi hỏi về việc lấy dữ liệu ra để xem, nên chỉ SELECT phù hợp với yêu cầu.
Mở trang câu hỏi này →
AThese session ID names are not published in public documents.
BThese session ID names can be used to fingerprint the application framework employed.
CThese session ID names are used randomly and make integration of frameworks impossible.
DThese session ID names typically contain a short length of numerical numbers and can be easily cracked.
Lời giải
Đáp án đúng: "These session ID names can be used to fingerprint the application framework employed.". Mỗi framework phổ biến đặt tên mặc định cho cookie phiên, ví dụ PHPSESSID của PHP, JSESSIONID của Java EE hay ASP.NET_SessionId của ASP.NET; chỉ cần nhìn tên cookie, kẻ tấn công đã biết ứng dụng chạy trên nền tảng nào để tra các lỗ hổng đã biết của nền tảng đó, đây là fingerprinting (lấy dấu vân tay ứng dụng). Đổi tên mặc định làm việc nhận diện khó hơn. "These session ID names are not published in public documents." sai vì ngược lại, các tên này được công bố rộng rãi trong tài liệu của framework, chính vì thế chúng mới dễ bị dùng để nhận diện. Ý "are used randomly and make integration of frameworks impossible" sai vì tên session ID là cố định chứ không ngẫu nhiên, và tên của nó không ảnh hưởng tới việc tích hợp. Ý "typically contain a short length of numerical numbers and can be easily cracked" nhầm giữa tên cookie với giá trị session ID; khả năng chống đoán nằm ở giá trị ngẫu nhiên đủ dài, còn đổi tên không làm giá trị khó đoán hơn.
Mở trang câu hỏi này →
AThe server returns data in the same channel used for injection
BThe attacker uses stored procedures to exfiltrate data
CThe attacker infers database behavior without visible error messages
DThe server responds with HTTP 500 errors due to command injection
Lời giải
Đáp án đúng: "The attacker infers database behavior without visible error messages". Blind SQL injection (chèn SQL mù) xảy ra khi ứng dụng có lỗ hổng chèn SQL nhưng không đưa dữ liệu hay thông báo lỗi ra trang, nên kẻ tấn công phải suy luận từ khác biệt gián tiếp như trang trả về đúng hoặc sai (boolean-based) hay thời gian phản hồi bị trễ (time-based). "The server returns data in the same channel used for injection" sai vì đó là mô tả chèn SQL in-band, như kiểu UNION hay error-based, ngược với kiểu mù. "The attacker uses stored procedures to exfiltrate data" sai vì lạm dụng stored procedure (thủ tục lưu sẵn) là một kỹ thuật khai thác riêng, không phải đặc trưng định nghĩa của kiểu mù. "The server responds with HTTP 500 errors due to command injection" sai vì lỗi HTTP 500 hiển thị là dấu hiệu lộ lỗi, và command injection (chèn lệnh hệ điều hành) là loại lỗ hổng khác với chèn SQL. Phòng thủ chung cho mọi dạng chèn SQL là truy vấn tham số hoá.
Mở trang câu hỏi này →
ATo store web application data
BTo manage DNS records
CTo enable client-server communication
DTo provide encryption for emails
Lời giải
Đáp án đúng: "To enable client-server communication". HTTP (HyperText Transfer Protocol, giao thức truyền siêu văn bản) là giao thức tầng ứng dụng theo mô hình yêu cầu và phản hồi: trình duyệt (client) gửi yêu cầu với phương thức như GET hay POST, máy chủ web trả về mã trạng thái, tiêu đề và nội dung. Hiểu cơ chế này là nền tảng để phân tích lỗ hổng ứng dụng web. "To store web application data" sai vì lưu trữ dữ liệu là việc của cơ sở dữ liệu hoặc hệ thống tệp phía máy chủ, HTTP chỉ chuyên chở dữ liệu. "To manage DNS records" là chức năng của hệ thống DNS và máy chủ tên miền, dùng để phân giải tên thành địa chỉ IP. "To provide encryption for emails" thuộc về các cơ chế như S/MIME hay PGP; bản thân HTTP không mã hóa, muốn mã hóa web phải dùng HTTPS với TLS.
Mở trang câu hỏi này →
AKerberos vulnerability
BSession hijacking
CDefault credential attack
DRedirect attack
Lời giải
Đáp án đúng: "Default credential attack". Thiết bị mạng mới thường xuất xưởng với tài khoản và mật khẩu mặc định được công bố trong tài liệu của nhà sản xuất; tấn công bằng thông tin đăng nhập mặc định (default credential attack) lợi dụng việc quản trị viên quên đổi chúng. Chính sách buộc cấu hình bảo mật nâng cao, như đổi mật khẩu và tắt dịch vụ thừa, trước khi đưa thiết bị vào mạng sản xuất chặn trực tiếp mối đe dọa này. "Kerberos vulnerability" liên quan tới giao thức xác thực Kerberos trong miền Active Directory, ví dụ kerberoasting, không phụ thuộc việc router mới được làm cứng. "Session hijacking" (chiếm phiên) là đánh cắp hoặc giả mạo mã phiên của một phiên đã xác thực, được chống bằng mã hóa và quản lý phiên chứ không bằng cấu hình ban đầu của thiết bị. "Redirect attack" chuyển hướng lưu lượng hoặc người dùng tới đích độc hại, ví dụ qua thông điệp ICMP redirect hay lỗi chuyển hướng mở trên web, không phải trọng tâm của chính sách này.
Mở trang câu hỏi này →
AIt indicates to the web browser that web client-based code can access the cookie.
BIt requires the web browser to establish a secure HTTPS link to the server.
CIt forces the web browser to have the cookies processed only by the server.
DIt informs the web client that the cookie is a persistent cookie.
Lời giải
Đáp án đúng: "It forces the web browser to have the cookies processed only by the server.". Cờ HttpOnly báo cho trình duyệt rằng cookie chỉ được gửi kèm trong các yêu cầu HTTP tới máy chủ và không cho mã phía máy khách như JavaScript đọc qua document.cookie; nhờ vậy nếu trang dính lỗi XSS (cross-site scripting), kẻ tấn công khó đánh cắp cookie phiên. "It indicates to the web browser that web client-based code can access the cookie." nói ngược hẳn tác dụng của cờ: HttpOnly chính là để chặn mã phía máy khách truy cập cookie. "It requires the web browser to establish a secure HTTPS link to the server." mô tả cờ Secure, cờ buộc cookie chỉ được gửi qua kết nối HTTPS; hai cờ thường được dùng cùng nhau nhưng có chức năng khác nhau. "It informs the web client that the cookie is a persistent cookie." sai vì tính lâu dài của cookie do thuộc tính Expires hoặc Max-Age quyết định, cookie thiếu chúng là cookie phiên (session cookie) bị xóa khi đóng trình duyệt.
Mở trang câu hỏi này →
AExpires
BMax-Age
CDomain
DSecure
EPath
Lời giải
Đáp án đúng gồm hai ý: "Expires" và "Max-Age". Cookie bền (persistent cookie) là cookie được trình duyệt lưu lại sau khi đóng phiên, và điều quyết định là thời hạn sống: thuộc tính "Expires" đặt mốc ngày giờ hết hạn, còn "Max-Age" đặt số giây cookie còn hiệu lực; thiếu cả hai thì cookie chỉ là cookie phiên (session cookie) và bị xóa khi đóng trình duyệt. "Domain" xác định tên miền nào được nhận cookie, liên quan phạm vi gửi chứ không phải thời hạn lưu. "Secure" buộc cookie chỉ được gửi qua kết nối HTTPS, là thuộc tính bảo mật kênh truyền. "Path" giới hạn đường dẫn URL mà cookie được đính kèm, cũng chỉ là phạm vi chứ không làm cookie tồn tại lâu dài. Khi kiểm thử phiên đăng nhập, cookie bền chứa mã phiên là điểm cần xem xét kỹ.
Mở trang câu hỏi này →
ATo encrypt user passwords
BTo maintain state across HTTP requests
CTo block SQL injections
DTo assign MAC addresses
Lời giải
Đáp án đúng: "To maintain state across HTTP requests". HTTP là giao thức phi trạng thái (stateless): mỗi yêu cầu độc lập, máy chủ không tự biết hai yêu cầu đến từ cùng một người. Session ID (mã phiên) là chuỗi ngẫu nhiên máy chủ cấp sau khi người dùng đăng nhập, thường lưu trong cookie, để gắn các yêu cầu sau vào cùng một phiên và trạng thái. Vì nó tương đương bằng chứng đăng nhập, mã phải đủ ngẫu nhiên, truyền qua HTTPS và hết hạn hợp lý để chống chiếm phiên. "To encrypt user passwords" sai vì mã phiên không tham gia bảo vệ mật khẩu; mật khẩu nên được băm có muối bằng thuật toán chậm như bcrypt. "To block SQL injections" sai vì chống chèn SQL dựa vào truy vấn tham số hóa và kiểm tra đầu vào, không liên quan mã phiên. "To assign MAC addresses" sai vì địa chỉ MAC là định danh tầng liên kết dữ liệu của card mạng, do nhà sản xuất gán, nằm ngoài phạm vi ứng dụng web.
Mở trang câu hỏi này →
AUse only a minimum set of error messages.
BUse a strong algorithm to encrypt the transmission of error messages.
CUse a well-thought-out scheme to provide meaningful error messages to the users but no useful information to an attacker.
DUse a third-party hosting service to provide coded error messages and transmit them securely to users, software developers, and support staff.
Lời giải
Đáp án đúng: "Use a well-thought-out scheme to provide meaningful error messages to the users but no useful information to an attacker.". Xử lý lỗi không đúng (improper error handling) làm lộ stack trace, câu truy vấn SQL, đường dẫn tệp hay phiên bản phần mềm, giúp kẻ tấn công trinh sát; cách làm đúng là thiết kế có chủ đích: người dùng nhận thông báo chung nhưng dễ hiểu, còn chi tiết kỹ thuật được ghi vào nhật ký phía máy chủ. "Use only a minimum set of error messages." chỉ giảm số lượng thông báo, không bảo đảm nội dung của chúng không làm lộ thông tin, và quá ít thông báo còn khiến người dùng khó hiểu. "Use a strong algorithm to encrypt the transmission of error messages." sai hướng vì mã hoá chỉ bảo vệ trên đường truyền; thông báo vẫn hiện nguyên văn cho chính người dùng, kể cả kẻ tấn công, ở phía trình duyệt. "Use a third-party hosting service to provide coded error messages and transmit them securely" thêm phức tạp và phụ thuộc bên ngoài nhưng không giải quyết gốc rễ là nội dung thông báo làm lộ thông tin.
Mở trang câu hỏi này →
Ause reputable and standard libraries to create the APIs
Bmake internal API documentation mandatory
Cdiscussing company API development (or any other application development) on public forums
Dsecure API services to provide HTTP endpoints only keep API implementation and API security into one tier allowing the API developer to work on both facets simultaneously
Lời giải
Đáp án đúng gồm hai ý: "use reputable and standard libraries to create the APIs" và "make internal API documentation mandatory". Bảo mật API (giao diện lập trình ứng dụng) bắt đầu từ việc dựng API trên thư viện có uy tín, theo chuẩn và được bảo trì, tránh tự viết phần xác thực hay mã hoá dễ lỗi; đồng thời bắt buộc có tài liệu API nội bộ giúp đội phát triển và đội an ninh nắm được từng endpoint, tham số và cơ chế xác thực để rà soát, kiểm thử và không bỏ sót API ẩn. "discussing company API development (or any other application development) on public forums" sai vì đưa chi tiết phát triển API nội bộ lên diễn đàn công khai làm lộ thông tin cho kẻ tấn công trinh sát, là điều cần tránh. Phương án bắt đầu bằng "secure API services to provide HTTP endpoints only" cũng sai: API nên chỉ cung cấp endpoint HTTPS chứ không phải HTTP không mã hoá, và việc "keep API implementation and API security into one tier" đi ngược nguyên tắc tách lớp, vì phần bảo mật như cổng API (API gateway) nên tách khỏi phần triển khai để kiểm soát độc lập.
Mở trang câu hỏi này →
A1 - a, 2 - b, 3 - c, 4 - d
B1 - a, 2 - c, 3 - d, 4 - b
C1 - b, 2 - c, 3 - a, 4 - d
D1 - c, 2 - b, 3 - a, 4 - d
Lời giải
Đáp án đúng: "1 - a, 2 - c, 3 - d, 4 - b". Trong URL ftp://xyz-company.com:2457/support/file;id=65?name=intro&r=true, phần sau lược đồ ftp:// là host (máy chủ) xyz-company.com; số đứng sau dấu hai chấm, 2457, là port (cổng); phần sau dấu gạch chéo đầu tiên là path (đường dẫn) support/file, còn ;id=65 là tham số gắn với đường dẫn; phần sau dấu chấm hỏi, name=intro&r=true, là query-string (chuỗi truy vấn) gồm các cặp tên và giá trị nối bằng dấu và. "1 - a, 2 - b, 3 - c, 4 - d" sai vì gán cổng 2457 là chuỗi truy vấn và đường dẫn là cổng. "1 - b, 2 - c, 3 - a, 4 - d" sai vì coi tên miền là chuỗi truy vấn và đường dẫn là host. "1 - c, 2 - b, 3 - a, 4 - d" sai vì coi tên miền là cổng, cổng là chuỗi truy vấn và chuỗi truy vấn là đường dẫn. Phân tích đúng các thành phần URL giúp xác định chỗ nhập liệu cần kiểm tra khi đánh giá ứng dụng.
Mở trang câu hỏi này →
ASQL Union injection
BLDAP injection
CHTTP command injection
DStacked query SQL injection
Lời giải
Đáp án đúng: "LDAP injection". Active Directory được truy vấn qua LDAP (Lightweight Directory Access Protocol, giao thức truy cập thư mục); nếu ứng dụng ghép trực tiếp dữ liệu người dùng nhập vào bộ lọc tìm kiếm LDAP, kẻ tấn công có thể chèn ký tự đặc biệt để đổi logic truy vấn, ví dụ vượt qua kiểm tra đăng nhập hoặc liệt kê đối tượng trong thư mục. Kiểm thử chèn LDAP vì thế trực tiếp đánh giá cách dịch vụ thư mục và các ứng dụng xác thực dựa trên nó được cấu hình và lọc đầu vào; phòng thủ bằng cách thoát ký tự đặc biệt và giới hạn quyền tài khoản truy vấn. "SQL Union injection" dùng mệnh đề UNION để nối kết quả truy vấn vào cơ sở dữ liệu quan hệ, không nhắm vào thư mục. "HTTP command injection" chèn lệnh hệ điều hành qua tham số của yêu cầu HTTP tới ứng dụng web. "Stacked query SQL injection" nối thêm câu lệnh SQL thứ hai sau câu lệnh gốc, cũng chỉ áp dụng cho cơ sở dữ liệu SQL.
Mở trang câu hỏi này →
Ain an HTTP header
Bin an error message
Cin a terminal window on the server
Din a user input field in a web form
Lời giải
Đáp án đúng: "in a user input field in a web form". Cross-site scripting (XSS, chèn mã kịch bản chéo trang) xảy ra khi ứng dụng web nhận dữ liệu người dùng nhập rồi đưa lại vào trang mà không lọc hay mã hoá đầu ra, khiến trình duyệt thực thi nó như script; vì vậy chuỗi thử XSS được đặt vào nơi ứng dụng nhận đầu vào, điển hình là ô nhập trong biểu mẫu như ô tìm kiếm, bình luận hay tên hiển thị, rồi quan sát trang trả về. "in an HTTP header" sai vì dù một số ứng dụng phản chiếu header như User-Agent và có thể dính XSS qua đó, đây không phải vị trí thử điển hình mà câu hỏi hướng tới. "in an error message" sai vì thông báo lỗi do máy chủ sinh ra, người kiểm thử không gõ chuỗi vào đó. "in a terminal window on the server" sai vì XSS là lỗi biểu hiện ở trình duyệt của ứng dụng web; gõ vào terminal trên máy chủ là chạy lệnh hệ điều hành và đòi hỏi đã có quyền truy cập máy chủ.
Mở trang câu hỏi này →
AAn attacker launches the attack on a web site and forces the web application to delay the query results.
BAn attacker launches the attack on a web site and views the query results immediately on the screen.
CAn attacker launches the attack on a web site and reconstructs the information by sending specific SQL statements.
DAn attacker launches the attack on a web site and forces the web application to send the query results via an email.
Lời giải
Đáp án đúng: "An attacker launches the attack on a web site and forces the web application to send the query results via an email.". SQL injection ngoài băng (out-of-band) là khi kết quả truy vấn không trả về trên cùng kênh với yêu cầu tấn công mà được cơ sở dữ liệu hay ứng dụng gửi qua một kênh khác như thư điện tử, truy vấn DNS hoặc yêu cầu HTTP tới máy chủ bên ngoài; kỹ thuật này dùng khi phản hồi trực tiếp không hiện dữ liệu. Phòng thủ là truy vấn tham số hoá và chặn kết nối ra ngoài từ máy chủ cơ sở dữ liệu. "forces the web application to delay the query results" mô tả blind SQL injection dựa trên thời gian (time-based), suy ra thông tin qua độ trễ phản hồi. "views the query results immediately on the screen" là in-band SQL injection, kết quả hiện ngay trên cùng kênh. "reconstructs the information by sending specific SQL statements" là blind SQL injection dựa trên suy luận (boolean-based), ghép lại dữ liệu từ phản ứng đúng sai của ứng dụng.
Mở trang câu hỏi này →
AIt involves increasing a user's privilege to root
BIt accesses functions of users with the same privilege level
CIt connects the system to the internet
DIt uses PowerShell to elevate rights
Lời giải
Đáp án đúng: "It accesses functions of users with the same privilege level". Leo thang đặc quyền ngang (horizontal privilege escalation) là khi kẻ tấn công dùng tài khoản của mình để truy cập dữ liệu hoặc chức năng của người dùng khác cùng cấp quyền, ví dụ xem đơn hàng của khách khác bằng cách đổi mã định danh trong yêu cầu (lỗi IDOR); leo thang dọc (vertical) là nâng từ quyền thấp lên quyền cao như quản trị hay root. Phòng thủ là kiểm tra quyền sở hữu tài nguyên phía máy chủ cho mọi yêu cầu. "It involves increasing a user's privilege to root" sai vì nâng lên root chính là leo thang dọc. "It connects the system to the internet" sai vì kết nối Internet không liên quan tới mô hình đặc quyền. "It uses PowerShell to elevate rights" sai vì PowerShell chỉ là công cụ có thể dùng trong nhiều kiểu tấn công, còn việc nâng quyền lên cao hơn lại là leo thang dọc.
Mở trang câu hỏi này →
Adirectory traversal
Bcookie manipulation
Clocal file inclusion
Dremote file inclusion
Lời giải
Đáp án đúng: "remote file inclusion". Tham số page trong URL nhận một địa chỉ đầy đủ trỏ tới máy chủ bên ngoài do kẻ tấn công kiểm soát; nếu ứng dụng dùng giá trị này để nạp và thực thi tệp mà không kiểm tra, đó là lỗ hổng chèn tệp từ xa (remote file inclusion, RFI). Phòng thủ bằng danh sách cho phép các trang hợp lệ và tắt khả năng nạp tệp qua URL, như tùy chọn allow_url_include của PHP. "directory traversal" (duyệt thư mục) dùng chuỗi ký tự lùi thư mục để đọc tệp nằm ngoài thư mục web trên chính máy chủ, trong URL này không có chuỗi như vậy. "cookie manipulation" là sửa giá trị cookie để đổi quyền hay phiên; chữ cookie.html ở đây chỉ là tên tệp từ xa. "local file inclusion" cùng cơ chế nạp tệp nhưng tệp nằm sẵn trên máy chủ nạn nhân; vì tệp được trỏ tới một miền bên ngoài nên đây là kiểu từ xa.
Mở trang câu hỏi này →
AUsername
BCookie
CHTTP method
DIP address
Lời giải
Đáp án đúng: "Cookie". Session hijacking (chiếm phiên) là lấy được định danh phiên của người dùng đã đăng nhập để mạo danh họ; trong ứng dụng web, định danh này thường lưu trong session cookie, nên cookie là mục tiêu chính, có thể bị lộ qua XSS, nghe lén kết nối không mã hoá hay session ID dễ đoán. Phòng thủ là đặt cờ HttpOnly, Secure, SameSite cho cookie và dùng HTTPS. "Username" sai vì tên đăng nhập chỉ là một nửa thông tin xác thực; có nó mà không có phiên hay mật khẩu thì chưa chiếm được gì. "HTTP method" sai vì GET hay POST chỉ là kiểu yêu cầu, không mang trạng thái đăng nhập. "IP address" sai vì địa chỉ IP có thể bị giả mạo trong một số kiểu tấn công mạng, nhưng ứng dụng web hiện đại gắn phiên với cookie chứ không với IP, nên IP không phải thứ thường bị nhắm tới.
Mở trang câu hỏi này →
ATo encrypt SQL queries
BTo validate SQL syntax
CTo retrieve records from a different table
DTo authenticate the session
Lời giải
Đáp án đúng: "To retrieve records from a different table". Toán tử UNION trong SQL ghép kết quả của hai câu SELECT có cùng số cột và kiểu dữ liệu tương thích; trong UNION-based SQL injection, kẻ tấn công nối thêm một câu SELECT vào truy vấn gốc để kết quả từ bảng khác, ví dụ bảng tài khoản, hiện ra cùng dữ liệu bình thường của trang. Phòng thủ là truy vấn tham số hoá và kiểm tra đầu vào. "To encrypt SQL queries" sai vì UNION không có chức năng mã hoá nào. "To validate SQL syntax" sai vì kiểm tra cú pháp là việc của trình phân tích câu lệnh trong hệ quản trị cơ sở dữ liệu. "To authenticate the session" sai vì xác thực phiên là chức năng của ứng dụng, cookie hay token, không phải của một toán tử SQL.
Mở trang câu hỏi này →
Acaching of HTTP messages
Bscanning a web server for related contents
Ctranslating HTTP messages to FTP and SMTP messages
Denabling HTTP transfers across a firewall
Eencrypting HTTP packets transmitted between web clients and web servers
Lời giải
Đáp án đúng gồm hai ý: "caching of HTTP messages" và "enabling HTTP transfers across a firewall". Web proxy đứng giữa trình duyệt và máy chủ web: nó lưu đệm (cache) các phản hồi HTTP để lần sau trả ngay cho người dùng, tiết kiệm băng thông, và nó là điểm được tường lửa cho phép đi ra Internet, nên giúp các máy bên trong truyền HTTP xuyên qua tường lửa mà không cần mở kết nối trực tiếp. "scanning a web server for related contents" là việc của công cụ quét hay crawler như Nikto, không phải chức năng chính của proxy. "translating HTTP messages to FTP and SMTP messages" sai vì proxy chuyển tiếp HTTP chứ không dịch sang giao thức truyền tệp hay gửi thư. "encrypting HTTP packets transmitted between web clients and web servers" là việc của TLS trong HTTPS, thực hiện giữa hai đầu; proxy thông thường không làm nhiệm vụ mã hoá này. Trong kiểm thử, proxy chặn bắt như Burp Suite cũng dựa trên chính vị trí đứng giữa này.
Mở trang câu hỏi này →
Aincluding the session ID in the URL
Bsetting a cookie with the Expires attribute
Csetting a cookie with the Max-Age attribute
Dconfiguring a cookie with the HTTPOnly flag
Lời giải
Đáp án đúng: "including the session ID in the URL". Đặt mã phiên (session ID) trong URL làm nó lộ ra ở lịch sử trình duyệt, nhật ký máy chủ và proxy, header Referer gửi sang trang khác, hay khi người dùng chia sẻ đường liên kết, đồng thời mở đường cho session fixation (cố định phiên); OWASP khuyến nghị chỉ truyền mã phiên qua cookie. "setting a cookie with the Expires attribute" sai vì thuộc tính Expires đặt thời điểm hết hạn của cookie, giúp phiên không tồn tại vô thời hạn, là thực hành bình thường. "setting a cookie with the Max-Age attribute" sai vì Max-Age cũng giới hạn thời gian sống của cookie tính bằng giây, cùng mục đích thu hẹp cửa sổ bị lợi dụng. "configuring a cookie with the HTTPOnly flag" sai vì cờ HttpOnly ngăn JavaScript đọc cookie, giảm nguy cơ mất phiên qua XSS, tức là một biện pháp bảo vệ.
Mở trang câu hỏi này →

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

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