Thao tác trong http header

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Xây dựng công cụ đánh giá an toàn website (Trang 43 - 45)

4. THAO TÁC TRÊN THAM SỐ TRUYỀN

4.4.Thao tác trong http header

URL, biến ẩn form, cookie đều là những thành phần lƣu trữ thông tin mà ngƣời dùng thông thƣờng có thể xem và thay đổi. Tuy nhiên, những thành phần đó đều đƣợc chuyển đi thông qua HTTP Header. Vì thế, mặc dù HTTP Header không phải là tham số truyền của một ứng dụng nhƣng mọi thông tin đều đƣợc lƣu trữ vào nó trƣớc khi chuyển đi nên trong phần này sẽ đề cập đến việc thay đổi một HTTP Header.

4.4.1. Khái niệm

Thông thƣờng chỉ có trình duyệt và trình chủ là trao đổi HTTP Header, còn hầu hết các ứng dụng web thì không. Tuy nhiên, hacker có thể tự viết một chƣơng trình để điều khiển HTTP header (nhƣ xem nội dung, tạo mới) hay sử dụng các proxy miễn phí cho phép thay đổi dữ liệu đƣợc gửi từ trình duyệt. Ngoài ra hacker có thể tấn công trực tiếp bằng cách telnet gửi HTTP Request đến trình chủ.

Phần in đậm là nội dung hacker thay đổi. Ví dụ:

Referer header chứa URL của trang web mà từ đó yêu cầu đƣợc gửi đi. Vì thế một vài ứng dụng sẽ kiểm tra thành phần này trong header để đảm bảo rằng nó đƣợc gửi từ trang web của ứng dụng đó. Việc làm này dùng để ngăn chặn việc hacker lƣu lại trang web xuống máy, chỉnh sửa thuộc tính form, phá hoại bằng cách nhằm vào client side validate hay server side include, sau đó gửi đi. Nhƣng phƣơng pháp kiểm tra này sẽ thất bại khi hacker có thể sửa lại Referer header để nó giống nhƣ đƣợc gửi từ trang web hợp lệ.

4.4.2. Một số biện pháp khắc phục

Đơn giản là không tin tƣởng vào HTTP header nếu chƣa có các biện pháp an toàn. Với các header gửi từ trình chủ, chẳng hạn nhƣ cookie thì có thể đƣợc mã hoá. Còn với các header gửi từ trình khách thì không nên dùng các tham số nhƣ referer,… để thực hiện các biện pháp an toàn.

su-2.05# telnet localhost 80 Trying 127.0.0.1...

Connected to localhost. Escape character is '^]'. GET / HTTP/1.0

Referer: www.redhat.com/login.asp

User-Agent: <!--#exec cmd="/bin/id"-->

HTTP/1.1 200 OK

Date: Mon, 17 Dec 2001 20:39:02 GMT Server:

Connection: close Content-Type: text/html

Nhận xét:

Mọi thông tin quan trọng trao đổi giữa trình duyệt và trình chủ không nên lƣu trữ dƣới dạng chuỗi thông thƣờng mà cần đƣợc mã hóa, ngoài ra những thông tin này nên đƣợc kiểm tra, đối chiếu với dữ liệu trong cơ sở dữ liệu hay trong cache của trình chủ, phòng tránh trƣờng hợp nội dung thông tin bị sai lệch. Bên cạnh đó, việc kiểm tra dữ liệu đúng đắn là cần thiết vì hầu nhƣ các kĩ thuật tấn công đều dựa vào dữ liệu nhập trên URL, biến ẩn form hay cookie

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Xây dựng công cụ đánh giá an toàn website (Trang 43 - 45)