Lập Trình An Toàn

Giới thiệu, nội dung môn học

Chương 1. Kiểm tra đầu vào 1.1 Nguyên tắc kiểm tra. 1.2 Các hàm định dạng xâu (string formatting) . 1.3 Tràn bộ đệm. 1.4 Tràn số học. 1.5 Kiểm tra tên }ile và đường dẫn. 1.6 Giải mã URL 1.7 Cross-Site Scripting 1.8 SQL Injection Chương 2. Kiểm soát truy nhập 2.1 Cơ chế kiểm soát truy nhập trên Unix/Linux 2.2 Cơ chế kiểm soát truy nhập trên Windows 2.3 Hạ thấp quyền truy nhập của tiến trình 2.4 Xóa }ile an toàn 2.5 Hạn chế quyền truy nhập trên }ile 2.6 Khóa }ile 2.7 Tạo }ile tạm 2.8 Hạn chế truy nhập đến hệ thống }ile Chương 3. Kiểm soát xung đột 3.1 Khái niệm 3.2 Đoạn găng (Critical Section). 3.3 Đèn hiệu (Semaphore) 3.4 Mutex 3.5 Event 3.6 SRW Lock Chương 4. Mã hóa đối xứng 4.1 Biểu diễn khóa 4.2 Chuyển đổi chuỗi hexa và khóa nhị phân. 4.3 Mã hóa và giải mã Base64 4.4 Các phương pháp mã hóa đối xứng 4.5 Mã hóa đối xứng với OpenSSL 4.6 Mã hóa đối xứng với Microsoft Crypto API Chương 5. Hàm băm và xác thực thông điệp 5.1 Các loại hàm băm và MAC thông dụng 5.2 Băm với OpenSSL 5.3 Băm dữ liệu với CryptoAPI 5.4 Xác thực thông điệp với HMAC 5.5 Salt Chương 6. Mã hóa công khai 6.1 Mã hóa với OpenSSL RSA 6.2 Chữ ký số 6.3 Biểu diễn khóa 6.4 Kết nối SSL 6.5 Hạ tầng khóa công khai Chương 7. Anti-Tampering 7.1 Phát hiện thay đổi (Detecting modi}ication) 7.2 Che giấu mã (Code hiding) 7.3 Sử dụng con trỏ hàm (Function Pointer) 7.4 Giấu xâu (String hiding) 7.5 Phát hiện debugger (Anti-Debugger) 7.6 Self-modifying code 7.7 Giải pháp tổng thể Chương 8. Các vấn đề khác