1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc

37 1,3K 2
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 đề Báo Cáo Ứng Dụng Web Và Vấn Đề Bảo Mật
Tác giả Trần Văn Lực, Lê Văn Hợp, Phan Văn Thắng
Người hướng dẫn Trần Công Mậu
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 37
Dung lượng 896,88 KB

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

Nội dung

Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web,nó gây ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụng web là rấtcần thiết nhằm có cách

Trang 1

Ứng dụng web và vấn đề bảo mật

Trang 2

LỜI MỞ ĐẦU

Trong thời đại ngày này nay internet đã rất trở nên quen thuộc và là một công cụhữu ích để một đất nước giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá nhâncủa một ai đó giới thiệu về mình Tất cả đã kéo theo sự phát triển không ngừng của cácứng dụng web Và dần dần khái niệm ứng dụng web đã trở nên phổ biến Khi mà trêninternet ,ứng dụng web đã trở lên phổ biến ,ứng dụng một cách rộng rãi thì các cuộc tấncông ứng dụng web cũng phát triển hết sức phức tạp Điều này đã đặt ra vấn đề cấp thiếtcần làm như thế nào để bào đảm an toàn thông tin cho ứng dụng web, thông tin của người

sử dụng Các khái niệm chuyên môn về ứng dụng web và tấn công ứng dụng web cũngdần trở nên phổ biến hơn trong các tài liệu chuyên ngành Các công cụ hỗ trợ người lậptrình web, người quản trị mạng cũng xuất hiện giúp tìm kiếm lỗ hổng của ứng dụng webnhưng nó không theo kịp sự phát triển nhanh đến mức chóng mặt theo xu hướng nhanhhơn đẹp hơn của các ứng dụng web, và tất nhiên nó không thể ngăn chặn hoàn toàn cáccuộc tấn công ứng dụng web, khi mà các cuộc tấn công ngày càng đa dạng khai thác triệt

để những lỗi của ứng dụng web, của người quản trị, hay người lập trình ứng dụng web Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web,nó gây

ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụng web là rấtcần thiết nhằm có cách phòng chống tấn công và bảo mật ứng dụng web hiệu quả trởthành một yêu cầu cấp thiết…

Do đây là một xu thế tất yếu của thời, nên việc tìm hiểu và nghiên cứu về ứngdụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay các quản trị viên mớicòn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình, phòng tránh , hay khắcphục những lỗi của ứng dụng web Bài tập lớn này được thực hiện nhằm mục đích giớithiệu rõ hơn về ứng dụng web nhằm tránh những nhầm lẫn và đồng thời tìm hiểu vềnhững tấn công ứng dụng web phổ dụng nhằm có cách phòng chống ,bảo mật cho ứngdụng web hợp lý

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ỨNG DỤNG WEB 5

1 Khái niệm về ứng dụng web (website widget hay web application) 5

2 Cấu trúc, chức năng, giao diện & nguyên tắc hoạt động cơ bản của ứng dụng web 6

2.1 Cấu trúc cơ bản của một ứng dụng 6

2.2 Giao diện của một ứng dụng web 7

2.3 Chức năng cơ bản của các ứng dụng web 7

2.4 Nguyên tắc hoạt động của một ứng dụng web 8

2.5 Vấn đề bảo mật ứng dụng web 10

CHƯƠNG 2: GIỚI THIỆU VỀ CÁC THUẬT NGỮ VÀ KHÁI NIỆM LIÊN QUAN 12

1 Các khái niệm và thuật ngữ thường dùng 13

1.1 Các khái niệm chung về ứng dụng web 13

1.2 Thuật ngữ ,khái niệm về các công cụ liên quan đến ứng dụng web 14

1.3 Các khái niệm và thuật ngữ liên quan đến tấn công và bảo mật ứng dụng web 16

1.3.1 Khái niệm hacker 16

1.3.2 HTTP Hearder 17

1.3.3 Session 17

1.3.4 Cookie 18

CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB CƠ BẢN 18

I LÝ THUYẾT 18

1 Kiểm soát truy cập ( Web Access Control ) 18

2 Chiếm hữu phiên làm việc ( Session Management ) 19

Trang 4

2.1 Ấn định phiên làm việc ( Session Fixation ) 19

2.2 Đánh cắp phiên làm việc 19

3 Lợi dụng thiếu sót trong việc kiểm tra dữ liệu hợp lệ ( Input validation ) 19

3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt 19

3.2 Tràn bộ đệm ( Buffer OverFlow ) 19

3.3 Mã hóa URL ( URL Encoding ) 19

3.4 Kí tự Meta ( Meta – characters sử dụng những ký tự đặc biệt ) 20

3.5 Vượt qua đường dẫn ( Path Traversal ) 20

3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân ( Cross – Site Scripting) 20

3.7 Thêm câu lệnh hệ thống ( OS Command Injection ) 20

3.8 Kí tự rỗng ( Null Characters ) 20

3.9 Chèn câu truy vấn SQL ( SQL Injection ) 21

3.10 Ngôn ngữ phía máy chủ ( Server side includes ) 21

3.11 Thao tác trên tham số truyền ( Parameter manipulation ) 21

3.12 Từ chối dịch vụ ( DOS ) 21

II Các cách triển khai tấn công ứng dụng web 21

1 Thao tác trên tham số 21

1.1 Thao tác trên URL 22

1.2 Thao tác trên biến ẩn form 22

1.2.1 Khái niệm 22

1.2.2 Một số biện pháp khắc phục 22

2 Kỹ thuật tấn công SQL Injection 23

2.1 Kỹ thuật SQL Injection đơn giản nhất 23

2.2 Tấn công dựa vào câu lệnh Select 24

2.3 Tấn công dựa vào lệnh Having 24

2.4 Tấn công dựa vào câu lệnh kết hợp Union 24

2.5 Tấn công dựa vào lệnh Insert 25

Trang 5

2.6 Tấn công dựa vào Stored Procedure 25

3 Kỹ thuật tấn công gây tràn bộ đệm và từ chối dịch vụ ( Buffer overflow) 25

3.1 Khái niệm 26

3.2 Các đối tượng bị ảnh hưởng bởi kiểu tấn công này 26

3.3 Các kiểu tấn công Dos 27

3.3.1 Kiểu tấn công thứ nhất 27

3.3.2 Kiểu tấn công thứ hai 27

3.3.3 Kiểu tấn công vào tài nguyên hệ thống 28

3.4 Cách phòng chống 28

CHƯƠNG 3: GIỚI THIỆU MỘT SỐ CÔNG CỤ THÔNG DỤNG TRONG KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB 29

1 Tool Scanning 29

2 Công cụ bắt gói tin 31

3 Công cụ dùng để tấn công dos ứng dụng web 34

CHƯƠNG 4: PHẦN KẾT LUẬN 35

TÀI LIỆU THAM KHẢO 36

Trang 6

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ỨNG DỤNG WEB

1 Khái niệm về ứng dụng web (website widget hay web application)

Mang tính kỹ thuật nhiều hơn có thể giải thích các ứng dụng Web truy vấn máychủ chứa nội dung (chủ yếu trên cơ sở dữ liệu lưu trữ nội dung) và tạo tài liệu Web động

để phục vụ yêu cầu của máy khách (chính là người dùng website) Tài liệu được tạo trongkiểu định dạng tiêu chuẩn hỗ trợ trên tất cả mọi trình duyệt (như HTML, XHTML).JavaScript là một dạng script client-side cho phép yếu tố động có ở trên từng trang (nhưthay đổi ảnh mỗi lần người dùng di chuột tới) Trình duyệt Web chính là chìa khóa Nódịch và chạy tất cả script, lệnh… khi hiển thị trang web và nội dung được yêu cầu

Dưới góc độ chức năng, ứng dụng Web là các chương trình máy tính cho phépngười dùng website đăng nhập, truy vấn vào ra dữ liệu qua mạng Internet trên trình duyệtWeb yêu thích của họ Dữ liệu sẽ được gửi tới người dùng trong trình duyệt theo kiểuthông tin động (trong một định dạng cụ thể, như với HTML thì dùng CSS) từ ứng dụngWeb qua một Web Server

Để hiểu hết được ý nghĩa của khái niệm này chúng ta cùng đi sâu vào tìm hiểu tiếp

mô hình cấu trúc chức năng và nhiệm vụ của ứng dụng web

2 Cấu trúc, chức năng, giao diện & nguyên tắc hoạt động cơ bản của ứng dụng web 2.1 Cấu trúc cơ bản của một ứng dụng

Mô hình của một ứng dụng web đơn giản chính là mô hìnhMVC (Model View Controller)

-Tầng Model: chứa các code connect tới database,truy vấn và thêm xóa sửa dữ liệu Tầng View: chứa các code tạo giao diện tương tác với người dùng, dữ liệu được vẽ ra

nhu thế nào

Tầng Controller: chứa các code điều khiển dòng dữ liệu (flow control), gắn kết tầng

Mode và tầng View lại với nhau

Trang 7

Ứng dụng được chia thành các layer như thế sẽ tăng tính reuse và dễ dàng mởrộng Chẳng hạn nếu chúng ta muốn ứng dụng có thể truy xuất trên di dộng, chúng ta chỉcần tạo một tầng view mới riêng cho di động, tầng model và controller không thay dổi.Hay nếu chúng ta muốn thay đổi database, việc đó cũng dễ dàng hơn, chỉ cần ta tạo tầngmodel mới, phần view và controller không bị ảnh hưởng.

Mô hình thể hiện quan hệ của ba lớp trong ứng dụng web:

Hình 1: Mô hình 3 tầng của một wungs dụng web

Còn đây là mô hình của một dịch vụ ứng dụng web:

Hình2 Mô hình dịch vụ ứng dụng web đơn giản

2.2 Giao diện của một ứng dụng web

Giao diện web đặt ra rất ít giới hạn khả năng người dùng Thông qua Java,JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụngmới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có

Trang 8

thể thực hiện được Những kỹ thuật thông thường như kéo thả cũng được hỗ trợ bởinhững công nghệ trên

2.3 Chức năng cơ bản của các ứng dụng web

Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chươngtrình Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặtphần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó Ứng dụng webđược dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đànthảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năngkhác

Tất cả dữ liệu như vậy cần phải được đóng gói, lưu trữ, xử lý và truyền vận theomột cách nào đó, có thể sử dụng ngay hoặc vào một ngày nào đó sau này Các ứng dụngWeb, trong lĩnh vực đăng ký, đệ trình, truy vấn, đăng nhập, bán hàng và hệ thống quản lýnội dung chính là các website widget cho phép thực hiện tất cả công việc mong muốn

Web chính là là yếu tố cơ bản giúp doanh nghiệp tăng cường hình ảnh trực tuyếncủa mình trên thế giới mạng, tạo ra và duy trì nhiều mối quan hệ đem lại lợi nhuận lâu dàivới khách hàng tiềm năng và khách hàng hiện tại

Website ngày nay khác xa so với kiểu đồ họa và văn bản tĩnh của thế kỷ mười chínhay thời kỳ trước đó Các trang Web hiện đại cho phép người dùng lấy xuống nội dungđộng cá nhân hóa theo thiết lập và tham chiếu riêng Hơn nữa chúng cũng có thể chạy cácscript trên máy khách, có thể “thay đổi” trình duyệt Internet thành giao diện cho các ứngdụng như thư điện tử, phần mềm ánh xạ tương tác (Yahoo Mail, Google Maps)

Quan trọng nhất là website hiện đại cho phép đóng gói, xử lý, lưu trữ và truyền tải

dữ liệu khách hàng nhạy cảm (như thông tin cá nhân, mã số thẻ tín dụng, thông tin bảomật xã hội …) có thể dùng ngay hoặc dùng định kỳ về sau Và, điều này được thực hiệnqua các ứng dụng Web Đó có thể là thành phần webmail (thư điện tử), trang đăng nhập,chương trình hỗ trợ và mẫu yêu cầu sản phẩm hay hoạt động mua bán, hệ thống quản lýnội dung, phát triển website hiện đại, cung cấp cho các doanh nghiệp phương tiện cầnthiết để liên lạc với khách hàng tương lai và khách hàng hiện tại

Trang 9

2.4 Nguyên tắc hoạt động của một ứng dụng web

Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình kháchriêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗimáy tính cá nhân của người dùng Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nângcấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí

hỗ trợ và giảm năng suất

Ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn được

hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML Ngôn ngữ kịch bản phíangười dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được thêm vào để có thêmnhững yếu tố động trong giao diện người dùng Nói chung, mỗi trang Web đơn lẻ đượcgửi tới người dùng như một tài liệu ổn định, nhưng thứ tự các trang có thể cung cấp cảmgiác trực quan, khi những gì người dùng nhập vào sẽ được trả về thông qua thành phầnmẫu Web được nhúng vào trong đánh dấu trang Trong quá trình giao dịch đó, trình duyệtWeb sẽ thông dịch và hiển thị trang, và hoạt động như một người dùng chung cho bất kỳứng dụng Web nào

Theo mô hình MVC (Model - View - Controller)

Hình 3 Mô tả hoạt động của một ứng dụng web

Trang 10

Các bước hoạt động của một ứng dụng web đơn giản:

Bước 1: Browser tạo một HTTP Request gửi tới ứng dụng web.

Bước 2: Controller chính của Struts là class ActionServlet sẽ bắt request này, phân tích

URL của nó, và dựa vào file struts-config.xml để gửi request này tới Action class tươngứng

Bước 3: Action class là một class của Struts Framework Ứng dụng của chúng tathường

extends từ class này và viết code để sử lý những business tương ứng Chẳng hạn ta sẽ cómột LoginAction để xử lý việc user login, logout

Bước 4: Action class có thể truy xuất, cập nhật database nếu cần thiết.

Bước 5: Khi Action class thực hiện việc xử lý business xong, nó sẽ gửi yêu cầu

forward/redirect, cùng với dữ liệu (nếu có) về controller

Bước 6: Controller chuyển control đến trang JSP tương ứng ở tầng view Nếu trang JSP

này có sử dụng dữ liệu, controller sẽ cung cấp cho nó (đây chính là dữ liệu mà action đãtạo ra và đua cho controller

Bước 7: Sau khi trang JSP đã chuẩn bị xong, Controller tạo một HTTP Response gửi về

cho browser, để browser hiển thị ra màn hình

2.5 Vấn đề bảo mật ứng dụng web

Khi mà ứng dụng web phát triển rất nhanh về mọi mặt, khả năng ứng dụng mộtcách rộng rãi thì vấn đề bảo mật cho ứng dụng web cũng được chú trọng hơn Mặc dùkhông thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, nhưng vấn đề về bảo mậttrong ứng dụng Web vẫn không ngừng tăng lên Nguyên nhân có thể xuất phát từ cácđoạn mã không phù hợp Nhiều điểm yếu nghiêm trọng hay các lỗ hổng cho phép hackerxâm nhập thẳng và truy cập vào cơ sở dữ liệu tách lấy dữ liệu nhạy cảm Nhiều cơ sở dữliệu chứa thông tin giá trị (như chi tiết cá nhân, thông tin tài chính) khiến chúng trở thànhđích nhắm thường xuyên của hầu hết hacker Mặc dù hoạt động tấn công phá hoạiwebsite doanh nghiệp vẫn diễn ra thường xuyên, nhưng bây giờ tin tặc thích tăng cường

Trang 11

khả năng truy cập dữ liệu nhạy cảm nằm trên trình chủ chứa database hơn vì lợi nhuậnkhổng lồ từ các vụ mua bán dữ liệu đem lại.

Hình 4: Mô hình hoạt động của một ứng dụng web

Trong khung hoạt động mô tả ở trên, bạn có thể thấy thật dễ dàng cho một hackertruy cập nhanh chóng thông tin nằm trên cơ sở dữ liệu chỉ với một chút sáng tạo Nếumay mắn hơn chúng có thể gặp lỗ hổng xuất phát từ sự cẩu thả hay lỗi người dùng trêncác ứng dụng Web

Như đã nói, website phụ thuộc vào cơ sở dữ liệu để phân phối thông tin được yêucầu cho người dùng Nếu ứng dụng Web không an toàn (như có lỗ hổng, gặp phải mộtkiểu kỹ thuật hacking nào đó), toàn bộ cơ sở dữ liệu chứa thông tin nhạy cảm sẽ gặp nguyhiểm nghiệm trọng

Một số hacker có thể chèn mã độc hại vào ứng dụng Web có lỗ hổng để lừa đảongười dùng và dẫn họ tới website phishing Kỹ thuật này được gọi là Cross-site Scripting,

có thể được dùng ngay cả khi bản thân Web Server và nơi chứa cơ sở dữ liệu không có lỗhổng nào

Một cuộc nghiên cứu gần đây chỉ ra rằng 75% các cuộc tấn công mạng được thựchiện ở mức ứng dụng Web.Website và các ứng dụng Web liên quan luôn phải sẵn sàng24/7 để cung cấp dịch vụ theo yêu cầu khách hàng, yêu cầu từ phía nhân viên, nhà cungcấp và nhiều người liên quan khác

Trang 12

ZF Tường lửa, SSL không thể bảo vệ ứng dụng Web trước mọi hoạt động hacking,đơn giản vì truy cập vào website phải để ở chế độ public để bất kỳ ai cũng có thể ghéthăm website được Tất cả hệ thống cơ sở dữ liệu hiện đại (như Microsoft SQL Server,Oracle, MySQL) đều có thể truy cập qua một số cổng cụ thể (như cổng 80, 443) Nếumuốn, một người nào đó có thể kết nối trực tiếp tới cơ sở dữ liệu một cách hiệu quả khivượt qua cơ chế bảo mật của hệ điều hành Các cổng này để mở nhằm cho phép liên lạcvới hoạt động giao thông mạng hợp pháp, và do đó cũng hình thành nên lỗ hổng lớn nguyhiểm.

Các ứng dụng Web thường truy cập dữ liệu cuối như cơ sở dữ liệu khách hàng,điều khiển dữ liệu có giá trị và do đó rất khó để có thể tuyệt đối an toàn Lúc này truy cập

dữ liệu thường không kèm script cho phép đóng gói và truyền tải dữ liệu Nếu một hackernhận ra điểm yếu trong một script, anh ta có thể dễ dàng mở lại lưu lượng sang khu vựckhác và chia lẻ bất hợp pháp chi tiết cá nhân người dùng, dù đôi khi không hề chủ tâmlàm điều đó

Hầu hết ứng dụng Web đều là tự tạo, do đó ít có được các kiểm tra trình độ hơn sovới phần mềm cùng loại Do đó các ứng dụng tùy biến thường dễ bị tấn công hơn

Có thể nói ứng dụng Web là một cổng vào (gateway) của cơ sở dữ liệu, nhất là cácứng dụng tùy biến Chúng không được phát triển với mức bảo mật tốt nhất vì không phảiqua các kiểm tra bảo mật thông thường Nói chung, bạn cần trả lời câu hỏi: “Phần nàotrên website chúng ta nghĩ là an toàn nhưng lại mở cửa cho các cuộc tấn công?” và “Dữliệu nào chúng ta đem vào một ứng dụng khiến nó thực hiện một số điều không nênlàm?”.Đó là công việc của phần mềm rà soát lỗ hổng Web

Hiện nay , hacker có rất nhiều cách tấn công một ứng dụng web từ các kĩ thuật cơbản cho đến những kĩ thuật đòi hỏi kĩ thuật và công nghệ cao cao Các công cụ(tool) hỗtrợ ra đời ngày càng nhiều , hỗ trợ rất nhiều cho người quản trị mạng , tìm ra những lỗhổng để có bản vá lỗi kịp thời nhưng đồng thời nó cũng là một con dao hai lưỡi Hacker

có thể dùng những tool này để phát hiện những lỗ hổng của một ứng dụng web và từ đó

sẽ có cách tấn công tương ứng vào lỗ hổng này gây ra rất nhiều tổn thất

Trang 13

CHƯƠNG 2: GIỚI THIỆU VỀ CÁC THUẬT NGỮ VÀ KHÁI NIỆM LIÊN QUAN

1 Các khái niệm và thuật ngữ thường dùng

1.1 Các khái niệm chung về ứng dụng web

Web browser (trình duyệt web) là các ứng dụng phần mềm cho phép người dùngtruy vấn dữ liệu và tương tác với nội dung nằm trên trang Web bên trong website

Trang Web là tĩnh; người dùng gửi yêu cầu một tài nguyên nào đó, và server sẽ trả

về tài nguyên đó Các trang Web không có gì hơn là một văn bản được định dạng và phântán Đối với các trình duyệt, thì các trang Web tĩnh không phải là các vấn đề khó khăn, vàtrang Web lúc đầu chỉ để thông tin về các sự kiện, địa chỉ, hay lịch làm việc qua Internet

mà thôi, chưa có sự tương tác qua các trang Web

Web "ĐỘNG" là thuật ngữ được dùng để chỉ những website được hỗ trợ bởi mộtphần mềm cơ sở web, nói đúng hơn là một chương trình chạy được với giao thức http.Thực chất, website động có nghĩa là một website tĩnh được "ghép" với một phần mềmweb (các modules ứng dụng cho Web) Với chương trình phần mềm này, người chủwebsite thực sự có quyền điều hành nó, chỉnh sửa và cập nhật thông tin trên website củamình mà không cần phải nhờ đến những người chuyên nghiệp

Tên miền (Domain name) là định danh của website trên Internet Tên miền thườnggắn kèm với tên công ty và thương hiệu của doanh nghiệp Tên miền là duy nhất và đượccấp phát cho chủ thể nào đăng ký trước

- Tên miền có hai loại:

+ Tên miền quốc tế dạng: www.tencongty.com (.net, biz org, info )

(hoặc net.vn, biz.vn org.vn, gov.vn )

+ Web hosting là nơi không gian trên máy chủ có cài dịch vụ Internet như ftp,www,nơi đó bạn có thể chứa nội dung trang web hay dữ liệu trên không gian đó Lý do bạn

Trang 14

phải thuê Web Hosting để chứa nội dung trang web, dịch vụ mail, ftp, vì những máytính đó luôn có một địa chỉ cố định khi kết nối vào Internet (đó là địa chỉ IP) , còn nhưnếu bạn truy cập vào internet như thông thường hiện nay thông qua các IPS (InternetService Provider - Nhà cung cấp dịch vụ Internet) thì địa chỉ IP trên máy bạn luôn bịthay đổi, do đó dữ liệu trên máy của bạn không thể truy cập được từ những máy kháctrên Internet.

1.2 Thuật ngữ ,khái niệm về các công cụ liên quan đến ứng dụng web

CGI: Giải pháp đầu tiên để làm các trang Web động là Common Gateway

Interface (CGI) CGI cho phép tạo các chương trình chạy khi người dùng gửi các yêucầu Giả sử khi cần hiển thị các các mục để bán trên Web site – với một CGI script ta

có thể truy nhập cơ sở dữ liệu sản phẩm và hiển thị kết quả Sử dụng các form HTMLđơn giản và các CGI script, có thể tạo các “cửa hàng” ảo cho phép bán sản phẩm chokhách hàng qua một trình duyệt CGI script có thể được viết bằng một số ngôn ngữ từPerl cho đến Visual Basic

Applet:Tháng 5/1995, John Gage của hãng Sun và Andressen (nay thuộc

Netscape Communications Corporation) đã công bố một ngôn ngữ lập trình mới có tênJava Netscape Navigator đã hỗ trợ ngôn ngữ mới này, và một con đường mới cho cáctrang Web động được mở ra, kỷ nguyên của applet bắt đầu

Applet cho phép các nhà phát triển viết các ứng dụng nhỏ nhúng vào trang Web.Khi người dùng sử dụng một trình duyệt hỗ trợ Java, họ có thể chạy các applet trong trìnhduyệt trên nền máy ảo Java Virtual Machine (JVM) Dù rằng applet làm được nhiều điềusong nó cũng có một số nhược điểm: thường bị chặn bởi việc đọc và ghi các file hệthống, không thể tải các thư viện, hoặc đôi khi không thể thực thi trên phía client Bù lạinhững hạn chế trên, applet được chạy trên một mô hình bảo mật kiểu sandbox bảo vệngười dùng khỏi các đoạn mã nguy hiểm Có những lúc applet được sử dụng rất nhiều,nhưng nó cũng có những vấn đề nảy sinh: đó là sự phụ thuộc vào máy ảo Java JVM, cácapplet chỉ thực thi khi có môi trường thích hợp được cài đặt phía client, hơn nữa tốc độ

Trang 15

của các applet là tươngđối chậm vì thế applet không phải là giải pháp tối ưu cho Webđộng.

JavaScript:Cùng thời gian này, Netscape đã tạo ra một ngôn ngữ kịch bản gọi là

JavaScript JavaScript được thiết kế để việc phát triển dễ dàng hơn cho các nhà thiết kếWeb và các lập trình viên không thành thạo Java (Microsoft cũng có một ngôn ngữ kịchbản gọi là VBScript) JavaScript ngay lập tức trở thành một phương pháp hiệu quả để tạo

ra các trang Web động

Việc người ta coi các trang như là một đối tượng đã làm nảy sinh một khái niệmmới gọi là Document Object Model (DOM) Lúc đầu thì JavaScript và DOM có một sựkết hợp chặt chẽ nhưng sau đó chúng được phân tách DOM hoàn toàn là cách biểu diễnhướng đối tượng của trang Web và nó có thể được sửa đổi với các ngôn ngữ kịch bản bất

kỳ như JavaScript hay VBScript

Tổ chức World Wide Web Consortium (W3C) đã chuẩn hóa DOM, trong khiEuropean Computer Manufacturers Association (ECMA) phê duyệt JavaScript dưới dạngđặc tả ECMAScript

JSP/Servlet, ASP và PHP:Cùng với Java, Sun đồng thời đưa ra một công nghệ

mới gọi là servlet Các đoạn mã Java sẽ không chạy phía client như với applet; chúng sẽđược chạy trên một ứng dụng phía server Servlet cũng đồng thời phục vụ các CGI script.Servlet là một bước tiến lớn, nó đưa ra một thư viện hàm API trên Java và một thư việnhoàn chỉnh để thao tác trên giao thức HTTP

JavaServer Page (JSP) là một công nghệ lập trình Web của Sun, cùng với nó làmột công nghệ khác của Microsoft - Active Server Pages (ASP), JSP là công nghệ đòihỏi một trình chủ hiểu được Java Microsoft đã nghiên cứu các nhược điểm của servlet vàtạo ra ASP dễ dàng hơn để thiết kế các trang web động Microsoft thêm các bộ công cụrất mạnh và sự tích hợp rất hoàn hảo với các Web server JSP và ASP có những nét tươngđương vì chúng đều được thiết kế để phân tách qua trình xử lí khỏi quá trình biểu diễn

Có sự khác biệt về kỹ thuật, song cả hai đều cho phép các nhà thiết kế Web tập trung vào

Trang 16

cách bố trí (layout) trong khi các nhà phát triển phần mềm thì tập trung vào các kỹ thuậtlập trình logic

Flash:Năm 1996, FutureWave đã đưa ra sản phẩm FutureSplash Animator Sau đó

FutureWave thuộc sở hữu của Macromedia, và công ty này đưa ra sản phẩm Flash Flash cho phép các nhà thiết kế tạo các ứng dụng hoạt họa và linh động Flash không đòi hỏi các kỹ năng lập trình cao cấp và rất dễ học Cũng giống như các nhiều giải pháp khác Flash yêu cầu phần mềm phía client Chẳng hạn như gói Shockwave Player plug-in có thểđược tích hợp trong một số hệ điều hành hay trình duyệt

DHTML:Khi Microsoft và Netscape đưa ra các version 4 của các trình duyệt của

họ, thì các nhà phát triển Web có một lựa chọn mới: Dynamic HTML (DHTML).DHTML không phải là một chuẩn của W3C; nó giống một bộ công cụ thương mại hơn.Trong thực tế nó là một tập hợp gồm HTML, Cascading Style Sheets (CSS), JavaScript,

và DOM Tập hợp các công nghệ trên cho phép các nhà pháp triển sửa đổi nội dung vàcấu trúc của một trang Web một cách nhanh chóng Tuy nhiên, DHTML yêu cầu sự hỗtrợ từ các trình duyệt Mặc dù cả Internet Explorer và Netscape hỗ trợ DHTML, nhưngcác thể hiện của chúng là khác nhau, các nhà phát triển cần phải biết được loại trình duyệtnào mà phía client dùng DHTML thật sự là một bước tiến mới, nhưng nó vẫn cần một sựqui chuẩn để phát triển Hiện nay DHTML vẫn đang trên con đường phát triển mạnh

XML:Kể từ khi ra đời vào giữa năm 1990, eXtensible Markup Language (XML)

của W3C dẫn xuất của SGML đã trở nên rất phổ biến XML có mặt ở khắp nơi,Microsoft Office 12 cũng sẽ hỗ trợ định dạng file XML.Ngày nay chúng ta có rất nhiềudạng dẫn xuất của XML cho các ứng dụng Web (tất nhiên là có cả XHTML): XUL củaMozilla; XAMJ, một sản phẩm mã nguồn mở trên nền Java; MXML từ Macromedia; vàXAML của Microsoft

Trang 17

1.3 Các khái niệm và thuật ngữ liên quan đến tấn công và bảo mật ứng dụng web 1.3.1 Khái niệm hacker

Khái niệm hacker có từ những 50, 60 của thế kỉ trước , và cho đến nay trải quamột thời gian phát triển khá dài hacker chia làm 4 loại:

- Hacker mũ trắng: là những chuyên gia lập trình chuyên tìm các lỗi của phần mềmvới mục đích sửa chữa, xây dựng hệ thống an toàn hơn

- Hacker mũ đen: đối lập với hacker mũ trắng, là những hacker phá hoại và trục lợicho mình

- Hacker mũ xanh/samurai: là những chuyên gia lập trình tài năng, được các hãngnhư Microsoft mời về làm việc chuyên tìm lỗi cho phần mềm của họ

- Hacker mũ xám hay mũ nâu: là những người đôi khi làm công việc của hacker mũtrắng nhưng vẫn làm công việc của hacker mũ đen

- Dù tự nhận mình là giới nào, họ vẫn đang làm công việc xâm nhập hệ thống thôngqua những lỗ hổng bảo mật Vì vậy tôi sẽ sủ dụng thuật ngữ hacker để chỉ nhũngngười tấn công ứng dụng web

1.3.2 HTTP Hearder

HTTP HEARDER là trường phần đầu chứa các thông số hoạt động của một yêucầu HTTP giữa máy chủ và máy khách Những thông tin trình khách gửi trình chủ gọi làHTTP requests(yêu cầu ),những thông tin trình chủ gửi cho trình khách gọi là HTTPresponses(trả lời )

Các trường tiêu đề xác định đặc điểm khác nhau của việc chuyển dữ liệu được yêucầu hoặc các dữ liệu được cung cấp trong thông điệp HTTP Header có thể có nhiều dòng

và thường bắt đầu với tên trường, chấm dứt với một ký tự đại tràng, tiếp theo là giá trịtrường Tên trường và các giá trị có thể là bất kỳ ứng dụng cụ thể chuỗi , nhưng tập lõicác lĩnh vực được chuẩn hóa bởi Internet Engineering Task Một số tham số được sửdụng cả trong trình khách mà trình chủ

Trang 18

1.3.3 Session

HTTP là giao thức hướng đối tượng phi trạng thái, nó không lưu trữ trạng thái làmviệc giữa trình chủ và trình khách Điều này gây khó khăn cho việc quản lý một số ứngdụng web bởi vì trình chủ không biết rằng trước đó trình khách đã ở trạng thái nào Đểgiải quyết vấn đề này , người ta đưa ra khái niệm SESSION(phiên làm việc) vào giaothức HTTP

SessionID là một chuỗi để chứng thực phiên làm việc Một số trình chủ sẽ cấpphát session cho người dùng khi họ xem trang web trên trình chủ

- Để duy trì phiên làm việc sessionID thường được lưu trữ vào :

+ Biến trên URL

+ Biến ẩn from

+ Cookie

- Phiên làm việc chỉ tồn tại trong khoảng thời gian cho phép, thời gian này được quyđịnh tại trình chủ hoặc bởi ứng dụng thực thi.Trình chủ tự động giải phóng phiênlàm việc để khôi phục tài nghuyên hệ thống

Những lần truy cập sau vào trang web đó ứng ứng dụng có thể sử dụng lại nhữngthông tin trong cookie(các thôgn tin tai khoản liên quan) mà người dùng không cần phải

Ngày đăng: 24/02/2014, 19:20

HÌNH ẢNH LIÊN QUAN

Hình 1: Mơ hình 3 tầng của một wungs dụng web - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 1 Mơ hình 3 tầng của một wungs dụng web (Trang 5)
Còn đây là mơ hình của một dịch vụ ứng dụng web: - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
n đây là mơ hình của một dịch vụ ứng dụng web: (Trang 5)
Theo mơ hìnhMVC (Model - View - Controller). - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
heo mơ hìnhMVC (Model - View - Controller) (Trang 7)
Hình 4: Mơ hình hoạt động của một ứng dụng web - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 4 Mơ hình hoạt động của một ứng dụng web (Trang 9)
Hình 1 giao diện của nmap - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 1 giao diện của nmap (Trang 28)
Hình2 mô tả kiểu quét intense của nmap - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 2 mô tả kiểu quét intense của nmap (Trang 28)
Hình 3 kết quả khi dùng nmap phần (nmap out) - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 3 kết quả khi dùng nmap phần (nmap out) (Trang 29)
Hình 4 Kết quả trên nmap out (tiếp) - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 4 Kết quả trên nmap out (tiếp) (Trang 29)
Hình 5 hình ảnh của host đang kiểm tra - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 5 hình ảnh của host đang kiểm tra (Trang 30)
Hình 6 giao diện của wireshare - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 6 giao diện của wireshare (Trang 31)
Hình 8 Thơng tin của những gói tin mà wireshare bắt được - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 8 Thơng tin của những gói tin mà wireshare bắt được (Trang 32)
Hình 7 giao diện của wireshare khi bắt gói tin - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 7 giao diện của wireshare khi bắt gói tin (Trang 32)
Hình 9 Giao diện của DoSHTTP 2.5 - Tài liệu Báo cáo Ứng dụng web và vấn đề bảo mật doc
Hình 9 Giao diện của DoSHTTP 2.5 (Trang 33)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w