VỚI NHỮNG NHÀ THIẾT KẾ ỨNG DỤNG WEB:

Một phần của tài liệu Nghiên cứu một số vấn đề về bảo mật ứng dụng web trên Internet (Nguyễn Duy Thắng vs Nguyễn Minh Thu) - 3 doc (Trang 25 - 27)

• Đảm bảo dữ liệu được cung cấp từ người dùng là hợp lệ:

Tất cả những dữ liệu được đưa vàoứng dụng phải đảm bảo được kiểm tra kĩ, loại bỏ hoặc từ chối những kí tựđặc biệt như < > ‘ /…

Tuy nhiên, không nên dùng ngôn ngữ trình khách (như JavaScript, VBScript…)

để kiểm tra dữ liệu nhập hợp lệ vì hacker vẫn có thể lợi dụng để tấn công như

trong kĩ thuật mã hoá URL hay vượt đường dẫn…Cách tốt nhất vẫn là kiểm tra ngay trênứng dụng.

Nếu không thể từ chối cũng như lọai bỏ những kí tự, ứng dụng cần kiểm tra dữ

liệu xuất đểđảm bảo rằng dữ liệu xuất đến trình duyệt là an toàn. Ví dụ12.II-1:

Với SQL Injection, ứng dụng cần xuất một trang báo lỗi do chính ứng dụng qui

định để phòng tránh trường hợp hacker lợi dụng nội dung báo lỗi cú pháp SQL để

lấy thông tin.

Ngoài ra,ứng dụng cần kết hợp với HTTP Header, đặc biệt là thành phần Referer

để đảm bảo trang yêu cầu không xuất phát từ máy hacker như trong kĩ thuật Buffer Overflow, thao tác trên biếnẩn form,…

Chương 12: Tổng kết các biện pháp phòng chống

Nhiều ứng dụng hiện nay quản lí một phiên làm việc của người dùng bằng sessionID nhưng sự yếu kém trong cách quản lí một phiên làm việc khiến cho hacker có thể dễ dàng kiểm soát được một phiên làm việc của người dùng như

trong kĩ thuật “quản lí phiên làm việc”. Vì thế, đối với một phiên làm việc, ứng dụng cần hủy ngay sau khi trình duyệt đóng kết nối.

• Mã hóa dữ liệu quan trọng:

Những thông tin quan trong như tên/mật khẩu, credit card,… cần được mã hóađể

tránh hacker có thể lấy được nội dung và sử dụng chúng như trong kĩ thuật XSS, SQL Injection...Ngoài ra, trong quá trình truyền, kết hợp phương pháp SSL để

tránh trường hợp mất mát thông tin trên đường truyền.

Hiện nay trong lĩnh vực mã hóa dữ liệu, có rất nhiều phương pháp mã hóa như mã hóa khóa bí mật, mã hóa khóa công khai,…nên tùy vào mức độ sử dụng cũng như

tầm quan trọng mà ứng dụng có thể chọn một trong những phương pháp mã hóa

đểđảm bảo dữ liệu được bảo mật.

Tuy nhiên, hiện nay nhiều nhàứng dụng lại mã hóa dữ liệu kết hợp với vài thông tin như ngày giờ, địa chỉ IP…khiến cho hacker có thể dễ dàng dự đoán, hoặc nội dung dữ liệu mã hóa quá ngắn khiến cho hacker có thể sử dụng nhưng công cụ

sẵn có để vét cạn những khả năng có thể xảy ra như trong kĩ thuật tấn công sessionID. Hoặc phương pháp mã hóa đã quá cũ khiến cho hacker có thể dễ dàng dùng những công cụ giải mã như “John and Ripper”.

Do đó, cần chọn thuật toán mã hóa cùng với khóa để mã hóa sao cho dữ liệu không dễ dựđoán và bị vét cạn.

Chương 12: Tổng kết các biện pháp phòng chống

Ngoài ra, việc dùng SSL là cần thiết đểtránh trường hợp dữ liệu bị đánh cắp trên

đường truyền.

• Dùng phần mềm có sẵn:

Hiện nay trên thị trường xuất hiện những phần mểm như Appshield hoạt động như một proxy, nghĩa là trung gian giữa máy khách và máy chủ, mọi yêu cầu từ

máy khách đều đi qua phần mềm này, nếu phát hiện trong yêu cầu có ẩn chứa khả (adsbygoogle = window.adsbygoogle || []).push({});

năng tấn công lên hệ thống, nó sẽ từ chối yêu cầu, không gửi lên máy chủ nữa mà sẽ tựđộng hủy yêu cầu.

• Thiết lập quyền:

Với những ứng dụng, hệ thống chỉ nên cung cấp những quyền hạn nhất định sao cho ứng dụng đủ thực hiện các chức năng của mình. Không nên đưa quyền cao nhất, như root vì hacker có thể lợi dụng quyền root này để có thể thực thi những câu lệnh của hệ thống, như trong kĩ thuật tấn công SQL Injection, Buffer Overflow…

Một phần của tài liệu Nghiên cứu một số vấn đề về bảo mật ứng dụng web trên Internet (Nguyễn Duy Thắng vs Nguyễn Minh Thu) - 3 doc (Trang 25 - 27)