10 câu hỏi có thể gặp khi phỏng vấn
Chọn theo kỹ năng và cấp của tin (Bảo mật (Security), SQL & Database, Data Engineer & Data Analyst). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.
01SIEM là gì? Trong SOC, bạn xử lý một alert như thế nào?Bảo mật (Security)
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →SIEM thu thập log từ nhiều nguồn (firewall, endpoint, server, cloud, AD), chuẩn hoá, tương quan và sinh alert theo rule hoặc phát hiện bất thường.
Quy trình xử lý alert:
- Triage: đọc alert, xác định tài sản và người dùng liên quan, mức độ quan trọng.
- Điều tra: đối chiếu log xung quanh thời điểm, tra IOC (IP, hash, domain) với threat intel.
- Kết luận: dương tính thật hay giả; ghi lại bằng chứng.
- Leo thang theo playbook nếu là sự cố thật.
- Tinh chỉnh rule nếu là báo động giả lặp lại.
Người phỏng vấn muốn nghe: ghi chép đầy đủ và biết khi nào cần leo thang thay vì tự xử lý.
02Bạn đưa bảo mật vào quy trình phát triển phần mềm (DevSecOps) thế nào?Bảo mật (Security)
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →Ý chính là "shift left": phát hiện lỗi sớm, tự động trong pipeline, nhưng không làm chậm team quá mức.
- Thiết kế: threat modeling cho tính năng nhạy cảm (thanh toán, đăng nhập).
- Code: SAST, quét secret ở pre-commit và CI.
- Phụ thuộc: SCA quét thư viện có lỗ hổng, cập nhật tự động; tạo SBOM.
- Build: quét image container, ký artifact.
- Chạy thử: DAST trên staging.
- Hạ tầng: quét IaC tìm cấu hình sai.
Chặn build chỉ với lỗi mức cao có thể khai thác; lỗi khác đưa vào backlog có hạn xử lý.
Hay sai: bật mọi công cụ với ngưỡng gắt, dev ngập báo động giả và tìm cách tắt.
03Tam giác CIA trong an toàn thông tin là gì? Cho ví dụ biện pháp bảo vệ từng yếu tố.Bảo mật (Security) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →CIA là ba mục tiêu cốt lõi: Confidentiality (bí mật), Integrity (toàn vẹn), Availability (sẵn sàng). Mọi biện pháp bảo mật đều nhằm bảo vệ ít nhất một trong ba.
- Confidentiality: mã hoá dữ liệu khi lưu và truyền, phân quyền theo least privilege, MFA.
- Integrity: hash và chữ ký số, kiểm soát thay đổi, log audit không sửa được.
- Availability: dự phòng, backup, chống DDoS, vá lỗi kịp thời.
Người phỏng vấn muốn nghe: các yếu tố đôi khi xung đột, ví dụ khoá tài khoản sau nhiều lần sai mật khẩu tăng bí mật nhưng có thể bị lạm dụng để làm người dùng thật không đăng nhập được.
04Chuẩn hoá (normalization) là gì? Khi nào nên denormalize?SQL & Database
Gợi ý trả lời
Ôn thêm câu hỏi SQL & Database →Chuẩn hoá là tách dữ liệu để mỗi thông tin chỉ lưu ở một chỗ, tránh dư thừa và sai lệch khi cập nhật.
- 1NF: mỗi ô một giá trị nguyên tử, không lưu danh sách trong một cột.
- 2NF: cột không khoá phụ thuộc vào toàn bộ khoá chính, không chỉ một phần.
- 3NF: cột không khoá không phụ thuộc bắc cầu qua cột không khoá khác.
Denormalize khi đọc nhiều hơn ghi rất nhiều và JOIN trở thành điểm nghẽn: lưu sẵn
comment_counttrong bảng bài viết, chépcustomer_namevào đơn hàng để giữ đúng tên tại thời điểm đặt, hoặc dựng bảng báo cáo riêng.Hay sai: denormalize mà không có cơ chế đồng bộ (trigger, job, event) nên số liệu lệch dần. Hãy nói rõ cái giá phải trả là logic ghi phức tạp hơn.
05Phân biệt INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL OUTER JOIN. Khi nào dùng LEFT JOIN?SQL & Database · Junior
Gợi ý trả lời
Ôn thêm câu hỏi SQL & Database →JOIN quyết định giữ lại những dòng nào khi ghép hai bảng theo điều kiện.
- INNER JOIN: chỉ giữ dòng khớp ở cả hai bảng.
- LEFT JOIN: giữ mọi dòng bảng trái; bảng phải không khớp thì cột thành
NULL. - RIGHT JOIN: ngược lại với LEFT, ít dùng vì có thể đổi chỗ bảng.
- FULL OUTER JOIN: giữ tất cả dòng của cả hai (MySQL không hỗ trợ trực tiếp, phải
UNIONhai LEFT JOIN).
Ví dụ tìm khách chưa từng đặt hàng:
SELECT c.id, c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL;Hay sai: đặt điều kiện lọc bảng phải trong
WHERE(vd.WHERE o.status = 'paid') làm LEFT JOIN biến thành INNER JOIN; điều kiện đó phải để trongON.06Các loại JOIN trong SQL khác nhau thế nào? Khi nào kết quả JOIN bị nhân bản dòng?Data Engineer & Data Analyst · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Data Engineer & Data Analyst →INNER JOINchỉ giữ dòng khớp ở cả hai bảng;LEFT JOINgiữ mọi dòng bảng trái, phía phải không khớp thì NULL;FULL OUTER JOINgiữ tất cả;CROSS JOINghép mọi cặp.Dòng bị nhân bản khi khoá join không duy nhất ở một phía (quan hệ một-nhiều hoặc nhiều-nhiều). Ví dụ join
ordersvớipaymentskhi một đơn có nhiều lần thanh toán, rồiSUM(order_amount)sẽ bị cộng trùng.- Kiểm tra độ duy nhất của khoá trước khi join.
- Gộp (aggregate) bảng chi tiết trước rồi mới join.
Hay sai: đặt điều kiện lọc bảng phải trong
WHEREsauLEFT JOIN, vô tình biến nó thànhINNER JOIN; nên đặt trongON.07Mã hoá đối xứng, bất đối xứng và hash khác nhau thế nào? Lưu mật khẩu người dùng ra sao?Bảo mật (Security) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →Đối xứng dùng một khoá cho cả mã hoá và giải mã (AES), nhanh; bất đối xứng dùng cặp khoá công khai/bí mật (RSA, ECC), dùng cho trao đổi khoá và chữ ký số; hash là hàm một chiều, không giải mã được.
- HTTPS kết hợp cả hai: bất đối xứng để thoả thuận khoá, đối xứng để mã hoá dữ liệu.
- Mật khẩu: lưu bằng hàm hash chậm có salt như Argon2id, bcrypt hoặc scrypt.
Hay sai:
- Lưu mật khẩu bằng MD5/SHA-256 thuần: quá nhanh, dễ bị dò hàng loạt.
- Gọi base64 là "mã hoá".
- Mã hoá mật khẩu (giải ngược được) thay vì hash.
08SQL injection là gì? Bạn phòng tránh trong code thế nào?Bảo mật (Security) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →SQL injection xảy ra khi dữ liệu người dùng được ghép thẳng vào câu SQL, khiến dữ liệu bị hiểu thành lệnh. Cách phòng chính là tách dữ liệu khỏi câu lệnh.
// Sai: ghép chuỗi db.query("SELECT * FROM users WHERE email = '" + email + "'"); // Đúng: tham số hoá db.query("SELECT * FROM users WHERE email = $1", [email]);- Dùng prepared statement hoặc ORM đúng cách; cẩn thận với các hàm cho viết raw SQL.
- Tên cột/bảng động thì kiểm tra theo danh sách cho phép.
- Tài khoản DB của ứng dụng chỉ có quyền tối thiểu.
- WAF và SAST là lớp bổ sung, không thay cho code đúng.
09XSS và CSRF khác nhau thế nào? Biện pháp phòng chống cho từng loại?Bảo mật (Security) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Bảo mật (Security) →XSS là khi script lạ chạy trong trang của bạn trên trình duyệt người dùng; CSRF là khi trang khác lợi dụng phiên đăng nhập của người dùng để gửi request thay họ.
Phòng XSS:
- Escape đầu ra theo ngữ cảnh (framework hiện đại làm mặc định); cẩn thận với
dangerouslySetInnerHTML,innerHTML. - Sanitize HTML do người dùng nhập bằng thư viện uy tín.
- Content-Security-Policy, cookie phiên đặt
HttpOnly.
Phòng CSRF:
- Cookie
SameSite=LaxhoặcStrict. - CSRF token cho request thay đổi dữ liệu; kiểm tra header
Origin. - Không dùng GET để thay đổi trạng thái.
Hay sai: nghĩ HTTPS chống được XSS hay CSRF.
- Escape đầu ra theo ngữ cảnh (framework hiện đại làm mặc định); cẩn thận với
10Bạn hãy giới thiệu ngắn về bản thân.Câu hỏi hành vi & văn hoá
Gợi ý trả lời
Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →Đây là câu mở đầu gần như chắc chắn có. Dùng công thức Hiện tại – Quá khứ – Tương lai, gói trong khoảng 1–2 phút.
- Hiện tại: vị trí, số năm kinh nghiệm, mảng/công nghệ chính.
- Quá khứ: một hai dự án hoặc thành tích liên quan nhất tới vị trí đang tuyển.
- Tương lai: vì sao bạn quan tâm tới vị trí này.
Câu mẫu: "Em là backend developer, khoảng 3 năm kinh nghiệm, chủ yếu làm Java Spring cho hệ thống thanh toán. Ở dự án gần nhất em phụ trách module đối soát và tối ưu các truy vấn báo cáo chạy chậm. Em đang tìm môi trường làm sản phẩm lâu dài để đi sâu hơn về thiết kế hệ thống, nên rất quan tâm tới vị trí này."
Hay sai: kể từ quê quán, trường cấp ba, hoặc đọc lại nguyên CV.
Bạn đã phỏng vấn ở MB Bank?
Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.
Chia sẻ kinh nghiệm phỏng vấn