Những năm gần đây, các dịch vụ thương mại điện tử (TMĐT) như thanh toán trực tuyến, giao dịch trực tuyến ebanking phát triển không ngừng. Các tiện ích càng được phát triển, doanh nghiệp (DN) càng phải trang bị hạ tầng mạng chuyên nghiệp nhằm đáp ứng nhu cầu vận hành liên tục và bảo mật hệ thống. | Ban An toàn thông tin Đinh Hữu Công Hà Nội, 01/2012 Nội dung Phần I: An toàn thông tin (ATTT) cho ứng dụng web Phần II: Hướng dẫn lập trình an toàn Phần III: Thực hành Phần IV: Thảo luận Phần I: ATTT cho ứng dụng web Tổng quan 1 Kiểm soát dữ liệu đầu vào 2 Kiểm soát dữ liệu đầu ra 3 Kiểm soát truy vấn database 4 Kiểm soát thao tác với file 5 1. Tổng quan ATTT cho ứng dụng Web: Đảm bảo ứng dụng web không bị tấn công gây hại cho hệ thống và người dùng Mô hình ứng dụng web, các nguy cơ và cách phòng chống 1. Tổng quan Web Browser Web App Database File Query Request I/O Response Kiểm soát dữ liệu đầu vào Kiểm soát truy vấn Database Kiểm soát dữ liệu đầu ra Kiểm soát Thao tác với file SQL Injection XSS CSRF Lỗi phân quyền Path traversal - SQL Injection - Mã hóa dữ liệu Path Traversal Upload, download XSS Mô hình ứng dụng web Các nguy cơ bị tấn công Thực hiện phòng chống 2. Kiểm soát dữ liệu đầu vào Khái niệm Dữ liệu do người dùng nhập vào được truyền | Ban An toàn thông tin Đinh Hữu Công Hà Nội, 01/2012 Nội dung Phần I: An toàn thông tin (ATTT) cho ứng dụng web Phần II: Hướng dẫn lập trình an toàn Phần III: Thực hành Phần IV: Thảo luận Phần I: ATTT cho ứng dụng web Tổng quan 1 Kiểm soát dữ liệu đầu vào 2 Kiểm soát dữ liệu đầu ra 3 Kiểm soát truy vấn database 4 Kiểm soát thao tác với file 5 1. Tổng quan ATTT cho ứng dụng Web: Đảm bảo ứng dụng web không bị tấn công gây hại cho hệ thống và người dùng Mô hình ứng dụng web, các nguy cơ và cách phòng chống 1. Tổng quan Web Browser Web App Database File Query Request I/O Response Kiểm soát dữ liệu đầu vào Kiểm soát truy vấn Database Kiểm soát dữ liệu đầu ra Kiểm soát Thao tác với file SQL Injection XSS CSRF Lỗi phân quyền Path traversal - SQL Injection - Mã hóa dữ liệu Path Traversal Upload, download XSS Mô hình ứng dụng web Các nguy cơ bị tấn công Thực hiện phòng chống 2. Kiểm soát dữ liệu đầu vào Khái niệm Dữ liệu do người dùng nhập vào được truyền lên server Mọi cuộc tấn công đều phải thông qua dữ liệu đầu vào Nguy cơ: SQL Injection, XSS (Cross Site Scripting) , CSRF (Cross Site Request Forgery), Path Traversal, lỗi phân quyền Thực hiện Chỉ chấp nhận dữ liệu hợp lệ Kiểm tra phía server là cần thiết Kết hợp các tiêu chuẩn kiểm tra Kiểm tra độ dài xâu là tiêu chuẩn nhanh và hiệu quả 3. Kiểm soát dữ liệu đầu ra Khái niệm Là nội dung server trả về HTML cho web browser Chứa input người dùng nhập vào Chứa kết quả truy vấn database Nguy cơ:Lỗi trong quá trình output các dữ liệu sang HTML gây ra lỗi Cross-Site Scripting (XSS) Thực hiện: Lọc các ký tự đặc biệt khi output 4. Kiểm soát truy vấn database Khái niệm Truy xuất dữ liệu của ứng dụng web trong database Là thao tác chủ yếu trong ứng dụng web Ngôn ngữ truy vấn: SQL, HQL Nguy cơ SQL Injection: Lỗi trong quá trình tạo câu query Mã hóa không an toàn: Lỗi trong cách tổ chức dữ liệu Thực hiện Gán tham số cho các câu truy vấn database Mã hóa an toàn soát thao tác