1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn lập trình an toàn cho ứng dụng Web ppt

37 1,9K 10
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hướng Dẫn Lập Trình An Toàn Cho Ứng Dụng Web
Tác giả Đinh Hữu Công
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Toàn Thông Tin
Thể loại Hướng dẫn
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 37
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 - Path Traversal - Upload, download - XSS Mô hình ứng dụng web

Trang 1

Ban An toàn thông tin

Đinh Hữu Công

Trang 3

Phần I: ATTT cho ứng dụng web

Trang 4

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

Trang 5

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

- 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

Trang 6

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ả

Trang 7

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

Trang 8

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

Trang 9

5.Kiểm soát thao tác với file

Khái niệm

 Các thao tác đọc ghi file trên server

Nguy cơ: Lỗi liên quan đến việc xử lý đường dẫn file

 Phần mở rộng của file

 Chứa xâu \, / : Chuyển đến thư mục cha

 Ký tự NULL: Kết thúc xâu đường dẫn

Thực hiện

 Chặn các kí tự không hợp lệ trong tên file

 Chỉ cho phép upload các file có phần mở rộng hợp lệ

Trang 10

Phần II: Hướng dẫn lập trình an toàn

Trang 11

1 Tổng quan

Tài liệu do tập đoàn ban hành

Mục tiêu: Phòng chống các lỗi cụ thể khi phát triển ứng dụng web: SQL Injection, XSS, CSRF, lỗi thao tác với file, lỗi mã hóa dữ liệu, lỗi phân quyền

Đối tượng áp dụng: Nhân viên phát triển

Trang 13

2 Phòng chống SQL Injection

Thực hiện

 Truy vấn SQL phải dùng PrepareStatement, tất cả tham số phải được add bằng hàm( setParam ), không được xử dụng cách cộng xâu trong truy vấn

 Truy vấn HQL tất cả tham số phải được add bằng

hàm( setParam ), không được xử dụng cách cộng xâu trong truy vấn

Ví dụ

Trang 14

2 Phòng chống SQL Injection

select * from userswhere user_name=‘test’ or ‘1’=‘1’and password=‘fsaf’

Trang 15

2 Phòng chống SQL Injection

Trang 16

2 Phòng chống SQL Injection

Đoạn code bị lỗi

Trang 17

2 Phòng chống SQL Injection

Đoạn code an toàn

Trang 18

3 Phòng chống XSS

Khái niệm XSS (Cross Site Scripting)

Yêu cầu:

 Thực hiện xử lý với tất cả dữ liệu đầu vào nhận được từ

trình duyệt, loại bỏ hoặc mã hóa dưới dạng HTML các ký

tự đặc biệt do client gửi lên máy chủ: <,>,&,’,”,/

 Xử lý các ký tự nguy hiểm trong cơ sở dữ liệu trước khi gửi tới người dùng: <,>,&,’,”,/

Trang 20

3 Phòng chống XSS

Đoạn code bị lỗi

Trang 21

3 Phòng chống XSS

Đoạn code an toàn

Trang 22

4 Phòng chống CSRF

Khái niệm CSRF (Cross Site Request Forgery)

Yêu cầu:

 Trong các tương tác của người dùng với cơ sở dữ liệu

thông qua các form, liên kết, sử dụng thêm biến token (được tạo ra mỗi đầu phiên truy cập của người dùng) như một tham số trong phương thức GET hoặc POST và kiểm tra giá trị token này tại server để xác nhận hành vi của

người dùng

Trang 24

4 Phòng chống CSRF

Đoạn code bị lỗi

http://localhost:8084/TestStruts/HelloStruts2World.action?userName=123

Trang 26

5 Phòng chống lỗi thao tác với file

Khái niệm thao tác file trong ứng dụng web

Yêu cầu:

 Chặn các kí tự \, /, null khi xử lý với tên file

 Giới hạn chỉ cho phép các định dạng file theo yêu cầu của ứng dụng được phép upload lên máy chủ Kiểm soát file upload ở phía server Lưu trữ các file upload tại một thư mục riêng nằm ngoài thư mục web hoặc không cho phép truy cập, thực thi trên các thư mục đó

Trang 27

5 Phòng chống lỗi thao tác với file

Thực hiện

 Kiểm tra phía server

 Kiểm soát phần mở rộng của file, chỉ cho phép thực hiện với các file có định dạng theo yêu cầu

 Các hàm liên quan đọc ghi file, biến đường dẫn file phải được lọc /, \ và kí tự null

Ví dụ

Trang 28

5 Phòng chống lỗi thao tác với file

Đoạn code bị lỗi

Trang 29

5 Phòng chống lỗi thao tác với file

Đoạn code an toàn

Trang 30

6 Phòng chống lỗi mã hóa dữ liệu

Yêu cầu:

 Những dữ liệu nhạy cảm trong cơ sở dữ liệu cần được mã hóa

Thực hiện

 Mã hóa các dự liệu nhạy cảm trong cơ sở dữ liệu

 Đối với các hàm mã hóa 1 chiều phải có thêm salt khi thực hiện mã hóa (salt là dữ liệu thêm vào plain text trước khi

mã hóa)

 Nguyên lý: hash = encrypt(salt + pass)

 Ví dụ: encryptPass = SHA1(“ttpmdn” + pass)

Ví dụ

Trang 31

6 Phòng chống lỗi mã hóa dữ liệu

QL0AFWMIX8NRZTKeof9cXsvbvu8=

QL0AFWMIX8NRZTKeof9cXsvbvu8=

Mã hóa 1 chiều không dùng salt

Mã hóa 1 chiều không dùng salt

Trang 32

7 Phòng chống lỗi phân quyền

Khái niệm phân quyền trong ứng dụng web

Yêu cầu:

 Kiểm tra quyền trong từng request gửi lên server

Thực hiện

 Kiểm tra quyền trong từng request gửi lên server

 Kiểm tra quyền thực hiện action: Sử dụng VSA

 Kiểm tra quyền tác động dữ liệu

Ví dụ

Trang 33

7 Phòng chống lỗi phân quyền

Đoạn code bị lỗi

Trang 34

7 Phòng chống lỗi phân quyền

Đoạn code an toàn

Trang 35

Phần III: Thực hành

Trang 36

Phần IV: Thảo luận

Question and answer

Ngày đăng: 06/03/2014, 22:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w