Đề tài Tìm hiểu về cách bảo mật một website

Trong kỹ thuật phần mềm, một Ứng dụng web (hay web application) là một trình ứng dụng mà có thể tiếp cận qua web thông qua mạng như Internet hay Itranet.

Ứ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ương trì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 đặt phầ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 đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng khác.

Một ưu thế đặc biệt của việc xây dựng ứng dụng Web để hỗ trợ những tính năng chuẩn của trình duyệt đó là chúng sẽ hoạt động như mong muốn bất kể hệ điều hành hay phiên bản hệ điều hành nào được cài trên máy khách cho trước. Thay vì tạo ra những chương trình khách cho MS Windows, Mac OS X, GNU/Linux, và những hệ điều hành khác, ứng dụng có thể được viết chỉ một lần và triển khai mọi nơi. Tuy nhiên, sự hiện thực không được ổn định của HTML, CSS, DOM và những đặc tính trình duyệt khác có thể gây ra rắc rối trong việc phát triển và hỗ trợ ứng dụng web. Thêm vào đó, khả năng cho người dùng điều chỉnh nhiều cài đặt hiển thị cho trình duyệt của họ (như chọn kích thước font, màu sắc, và kiểu chữ, hoặc tắt tính năng script) có thể can thiệp vào sự ổn định của ứng dụng web

 

doc28 trang | Chia sẻ: luyenbuizn | Lượt xem: 1316 | Lượt tải: 3download
Bạn đang xem trước 20 trang nội dung tài liệu Đề tài Tìm hiểu về cách bảo mật một website, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ VIỄN THÔNG Ñ&Ð ĐỀ TÀI MÔN HỌC “AN NINH MẠNG” ĐỀ TÀI : TÌM HIỂU VỀ CÁCH BẢO MẬT MỘT WEBSITE GVHD: Thầy VÕ QUANG SƠN SVTH: NGUYỄN CÔNG MINH 0520043 TÔN VI KIN 0520039 TRẦN HỒ NAM 0520045 PHAN BÁ TUỆ 0520091 TP Hồ Chí Minh – Tháng 11/2008 Mục lục MỤC LỤC 1 1. TÌM HIỂU VỀ ỨNG DỤNG WEB 2 1.1 Ứng dụng Web là gì 2 1.2 Domain – Hosting. 2 1.3 Web Server. 5 1.4 Ngôn ngữ lập trình Web. 5 1.5 Các hệ cơ sở dữ liệu. 8 2. BẢO MẬT ỨNG DỤNG WEB 10 2.1 Bảo mật là gì 10 2.2 Từ phía người tấn công (Hacker) 12 2.2 Từ phía người phòng thủ (Administrator) 22 TÀI LIỆU THAM KHẢO 26 NHẬN XÉT CỦA GIẢNG VIÊN 27 1. TÌM HIỂU VỀ ỨNG DỤNG WEB 1.1 Ứng dụng Web là gì? Trong kỹ thuật phần mềm, một Ứng dụng web (hay web application) là một trình ứng dụng mà có thể tiếp cận qua web thông qua mạng như Internet hay Itranet. Ứ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ương trì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 đặt phầ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 đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng khác. Một ưu thế đặc biệt của việc xây dựng ứng dụng Web để hỗ trợ những tính năng chuẩn của trình duyệt đó là chúng sẽ hoạt động như mong muốn bất kể hệ điều hành hay phiên bản hệ điều hành nào được cài trên máy khách cho trước. Thay vì tạo ra những chương trình khách cho MS Windows, Mac OS X, GNU/Linux, và những hệ điều hành khác, ứng dụng có thể được viết chỉ một lần và triển khai mọi nơi. Tuy nhiên, sự hiện thực không được ổn định của HTML, CSS, DOM và những đặc tính trình duyệt khác có thể gây ra rắc rối trong việc phát triển và hỗ trợ ứng dụng web. Thêm vào đó, khả năng cho người dùng điều chỉnh nhiều cài đặt hiển thị cho trình duyệt của họ (như chọn kích thước font, màu sắc, và kiểu chữ, hoặc tắt tính năng script) có thể can thiệp vào sự ổn định của ứng dụng web Cấu trúc 1 ứng dụng web Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp. Ở dạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng một vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, hoặc Ruby On Rails) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba. Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ra truy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng 1.2 Domain – Hosting Như chúng ta đã biết Internet là một mạng máy tính toàn cầu , do hàng nghìn mạng máy tính từ khắp mọi nơi nối lại tạo nên . Khác với cách tổ chức theo các cấp : nội hạt, liên tỉnh, quốc tế của một mạng viễn thông như mạng thoại chẳng hạn, mạng Internet tổ chức chỉ có một cấp, các mạng máy tính dù nhỏ, dù to khi nối vào Internet đều bình đẳng với nhau. Do cách tổ chức như vậy nên trên Internet có cấu trúc địa chỉ , cách đánh địa chỉ đặc biệt , rất khác cách tổ chức địa chỉ của mạng viễn thông. Địa chỉ Internet (IP) đang được sử dụng hiện tại là (IPv4) có 32 bit chia thành 4 Octet ( mỗi Octet có 8 bit , tương đương 1 byte ) cách đếm đều từ trái qua phải bít 1 cho đến bít 32, các Octet tách biệt nhau bằng dấu chấm (.) và biểu hiện ở dạng thập phân đầy đủ là 12 chữ số. Ví dụ một địa chỉ Internet : 146.123.110.224 (Địa chỉ IP tương lai được sử dụng là IPv6 có 128 bit dài gấp 4 lần của IPv4. Version IPv4 có khả năng cung cấp 232 = 4 294 967 296 địa chỉ. Còn Version IPv6 có khả năng cung cấp 2 128 địa chỉ ). Do người sử dụng nhớ được địa chỉ dạng chữ số dài như vậy khi nối mạng là rất khó khăn và vì thế cạnh địa chỉ IP bao giờ cũng có thêm một cái tên mang một ý nghĩa nào đó, dễ nhớ cho người sử dụng đi kèm mà trên Internet gọi là Tên Miền. Ví dụ: Máy chủ Web Server của VDC đang chứa Báo Quê hương có địa chỉ là 203.162.000.012 , tên Miền của nó là home.vnn.vn . Thực tế người sử dụng không cần biết đến địa chỉ IP mà chỉ cần nhớ tên Miền là truy nhập được. Vậy tên Miền là một danh từ dịch theo kiểu nghĩa của từng từ một (Word by Word) từ tiếng anh (Domain name). Thực chất tên miền là sự nhận dạng vị trí của một máy tính trên mạng Internet nói cách khác tên miền là tên của các mạng lưới, tên của các máy chủ trên mạng Internet. Do tính chất chỉ có 1 và 1 duy nhất trên Internet, ta không thể đăng ký được Domain name khi mà người khác đã là chủ sở hữu Cấu tạo của tên miền Tên miền bao gồm nhiều thành phần cấu tạo nên cách nhau bởi dấu chấm (.) ví dụ home.vnn.vn là tên miền máy chủ Web của VDC. Thành phần thứ nhất "home" là tên của máy chủ , thành phần thứ hai "vnn" thường gọi là tên miền mức hai (second domain name level), thành phần cuối cùng "vn" là tên miền mức cao nhất (top level domain name). 1.2.1 Tên miền mức cao nhất (Top- level Domain "TLD") : Bao gồm các mã quốc gia của các nước tham gia Internet được quy định bằng hai chữ cái theo tiêu chuẩn ISO -3166 như Việt nam là VN, Anh quốc là UK v.v.. và 7 lĩnh vực dùng chung (World Wide Generic Domains), trong đó có 5 dùng chung cho toàn cầu và 2 chỉ dùng ở Mỹ. 1- COM : Thương mại ( Commercial) 2- EDU : Giáo dục ( Education ) 3- NET : Mạng lưới ( Network ) 4- INT : Các tổ chức quốc tế ( International Organisations ) 5- ORG : Các tổ chức khác ( other orgnizations ) 6-MIL :quân sự (Military) 7-GOV:Chính phủ (Government) 1.2.2 Tên miền mức hai ( Second Level ) : Đối với các quốc gia nói chung tên miền mức hai này do Tổ chức quản lý mạng của quốc gia đó định nghĩa, có thể định nghĩa khác đi, nhiều hơn hay ít đi nhưng thông thường các quốc gia vẫn định nghĩa các Lĩnh vực kinh tế, xã hội của mình tương tự như lĩnh vực dùng chung nêu trên. Các loại Domain name Domain name cấp cao nhất Domain name cấp cao nhất là tên miền bạn đăng ký trực tiếp với các nhà cung cấp Domain name. Theo sau ngay phần tên bạn tùy chọn là phần TLD (Top Level Domain) có dạng: .com, .net, .org, .gov, .edu, .info, .tv, .biz,... hoặc các TLD kết hợp với ký hiệu viết tắt của quốc gia: .com.vn, .net.vn, .org.vn, .gov.vn,... Ví dụ: www.vnnetsoft.com www.yahoo.com www.vnn.vn Được coi là các tên miền cấp cao nhất. Các tên miền cấp cao nhất thể hiện sự chuyên nghiệp và uy tín trong kinh doanh trên Internet của các doanh nghiệp. Domain name thứ cấp Là tất cả những loại Domain name còn lại mà domain đó phải phụ thuộc vào một Domain name cấp cao nhất. Để đăng ký các Domain name kiểu này, thông thường bạn phải liên hệ trực tiếp với người quản lý Domain name cấp cao nhất. Ví dụ: Được coi là những tên miền thứ cấp. Web –Hosting: Web Hosting là nơi lưu trữ tất cả các trang Web, các thông tin, tư liệu, hình ảnh của Website trên một máy chủ Internet, Web Hosting đồng thời cũng là nơi diễn ra tất cả các hoạt động giao dịch, trao đổi thông tin giữa Website với người sử dụng Internet và hỗ trợ các phần mềm Internet hoạt động. Nói một cách đơn giản, Web Hosting tương đương với trụ sở làm việc của một doanh nghiệp trong đời thường Các yêu cầu và tính năng của Web Hosting? Web Hosting phải có một dung lượng đủ lớn (tính theo MBytes) để lưu giữ được đầy đủ các thông tin, dữ liệu, hình ảnh,... của Website Phải hỗ trợ truy xuất máy chủ bằng giao thức FTP để cập nhật thông tin Phải có bandwidth (băng thông) đủ lớn để phục vụ các hoạt động giao dịch, trao đổi thông tin của Website Hỗ trợ các công cụ lập trình phần mềm trên Internet và các công cụ viết sẵn để phục vụ các hoạt động giao dịch trên Website như gửi mail, upload qua trang Web,... Hỗ trợ đầy đủ các dịch vụ E-mail như POP3 E-mail, E-mail Forwarding,... 1.3 Web Server: Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác. (các mã Script, các chương trình, và các file Multimedia) Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác. Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name. Giả sử khi bạn đánh vào thanh Address trên trình duyệt của bạn một dòng sau đó gõ phím Enter bạn sẽ gửi một yêu cầu đến một Server có Domain Name là www.abc.com. Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của bạn. Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kết nối vào Internet. Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu và gửi lại cho bạn những thông tin mà bạn mong muốn. Giống như những phần mềm khác mà bạn đã từng cài đặt trên máy tính của mình, Web Server Software cũng chỉ là một ứng dụng phần mềm. Nó được cài đặt, và chạy trên máy tính dùng làm Web Server, nhờ có chương trình này mà người sử dụng có thể truy cập đến các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet, Intranet). Web Server Software còn có thể được tích hợp với CSDL (Database), hay điều khiển việc kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL lên các trang Web và truyền tải chúng đến người dùng. Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để phục vụ cho việc cung cấp thông tin trực tuyến. Vị trí đặt server đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thông tin từ server và máy tính truy cập. 1.4 Ngôn ngữ lập trình Web 1.4.1 PHP Năm 1994 rasmus lerdorf dua một doạn perl script vào trang web đề theo giỏi ai đang đọc tài liệu của ông.dần dẩn người ta thích đoạn cript này và bác đầu san xuất một gói công cụ mang ten personal home pages dó là tên đầu tiên của php Ông đã viết một số cơ chế nhúng kết hợp với các công cụ khác để phân tích các biểu mẩu html hay phiên dịch biểu mẫu và dạc tên là PHP2 được gọi là PHP/FI. PHP/FI vào năm 1995 Nhóm phát triển rasmus lerdorf , andigutmans, Zeev suraski đã loại bỏ những điểm yếu của php2 và thêm một số hàm API cho phép các lập trình viên khác bổ xung những tính năng của ngôn ngử để viết những module cho nó .vào tháng 11/1997 phiên bản php3 ra đời Cuối năm 1998, PHP đã có khoảng 10 triệu người sử dụng và hàng trăm triệu Website đã báo cáo là có sử dụng PHP Vào năm 1999 phiên bản php4 đã ra dới vói tính năng nỗi trội.hỗ trợ nhiều web server mới phiên http HTML (HyperText Markup Language): Đây là một ngôn ngữ đơn giản được sử dụng trong các tài liệu siêu văn bản nó chỉ là các tài liệu văn bản bình thường nhưng có chứa các thành phần đặc biệt gọi là các thẻ (hoặc các cặp thẻ) đánh dấu. Dựa theo các cặp thẻ này mà trình duyệt có thể biết được nó phải thực hiện cái gì Ví dụ đơn giản: Hãy lấy một ví dụ đơn giản như sau: Xin chào, tôi là LGVT Các bạn chú ý: dòng chữ Xin chào, tôi là LGVT được đặt trong cặp chữ "" và "" Cặp chữ này chính là ký hiệu của một cặp thẻ trong ngôn ngữ HTML, mà khi biên dịch ra, trình duyệt sẽ hiểu là: Khi gặp thẻ "", nó phải có trách nhiệm in tất cả các chữ sau đó thành chữ đậm cho đến khi gặp thẻ "". Trong HTML, các thẻ có thể tồn tại đơn lẻ, hoặc tồntại dưới dạng một cặp thẻ. Nếu tồn tại dưới dạng 1 cặp thì thẻ bắt đầu gọi là thẻ mở và thẻ kết thúc gọi là thẻ đóng Để soạn thảo một file HTML, chúng ta có thể sử dụng bất kỳ trình soạn thảo nào, chẳng hạn như NotePad hay thậm chí Turbo Pascal cũng được. miễn là sau đó các bạn Save As dưới dạng đuôi *.htm Cấu trúc của 1 thẻ trong HTML bao gồm: - Dấu "<". Nếu là thẻ đóng thì sẽ bắt đầu bằng "</" - Tên thẻ - Các tham số khác nếu có. Nếu là thẻ đóng thì không cần tham số Dấu ">". Cấu trúc của một file HTML có dạng: phần thân tài liệu Toàn bộ nội dung chính của trang HTML được đặt trong cặp thẻ XML : Là ngôn ngử mở rộng được phát triển trên tính đơn giản, dể dùng của HTML và tính phức tạp và đa chức năng của SGML. XML được thiết kế để cho phép máy tính có thể trao đổi tài liệu với nhau thông qua Web mà không làm mất đi ý nghĩa của dữ liệu. Một tài liệu XML bao gồm một tập các cặp thẻ được lồng vào nhau. Mỗi thẻ có một cặp các thuộc tính và giá trị Ví dụ:       Lê Nguyên Sinh       Trung tâm CNTT, ĐHSP Hà Nội Cấu trúc của một tài liệu XML: Một tài liệu XML có thể được chia thành hai phần chính, mỗi phần có thể có các thành phần theo quy định khác nhau: - Phần Prolog: Chứa các khai báo cho tài liệu XML. Phần này có thể chứa các định đạng như: Các chỉ thị xử lý, định nghĩa kiểu cho tài liệu, chú thích, phiên bản đang sử dụng, cách thức mã hóa dữ liệu, báo cáo các chỉ thị xử lý cho ứng dụng. - Phần thân chứa nội dung dữ liệu, bao gồm một hay nhiều phần tử, mỗi phần tử được chứa trong một cặp thẻ. Phần tử đầu tiên của tài liệu được gọi là phần tử gốc (root element). Một tài liệu XML được coi là hợp khuôn dạng (well-form) nếu nó tuân thủ các quy tắc sau: • Các khai báo XML cần được đặt tại dòng đầu tiên của tài liệu, chẳng hạn như khai báo phiên bản hay các chỉ thị xử lý XML. • Mỗi tài liệu XML chỉ có một thành phần gốc (root) chứa mọi thành phần khác trong tài liệu. Các thành phần có thể đứng trước phần tử gốc là chú thích, chỉ thị xử lý và định nghĩa DTD (nếu khai báo ở phần khởi đầu của tài liệu). • Mỗi phần tử của tài liệu phải được nằm trong một cặp thẻ. Nếu là phần tử rỗng thì thẻ phải được kết thúc bằng "/>". Ví dụ: "" • Các thành phần trong tài liệu XML, khác thành phần gốc đều nằm giữa cặp thẻ gốc và phải lồng nhau một cách hợp lý, tức là không có thành phần phủ, tập hợp thẻ này không được phép chồng lên thẻ kia, mỗi tập trong phải nằm trong tập hợp lớn hơn kế tiếp. • Các cặp thẻ phải được viết chính xác như nhau kể cả chữ hoa hay chữ thường. • Các giá trị của các thuộc tính đều phải nằm giữa hai ngoặc kép. Ví dụ: hide=true là không hợp lệ, mà phải là hide="true". ASP (active server pages) Vào những thập niên 90 một Kì thuật mới của microsoft là kết hợp html với các đoạn script, các thanh phần sử lí server trên cùng 1 file được gọi là ASP Về bản chất, ta có thể coi ASP như là một ngôn ngữ thông dịch vậy. Một trang ASP có thể sử dụng HTML, JScript và VBScript. Qua các đoạn mã nhúng này, ASP có thể truy cập đến các thành phần phía server.  Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ các thành phần COM của Microsoft Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ các thành phần COM của Microsoft. Ưu điểm : - Nó có thể làm được bất kỳ cái gì mà máy chủ có thể làm được với các thành phần COM. Sau khi được thi hành, ASP sẽ sản sinh ra một trang Web có khuôn dạng HTML và trả nó về cho Web server. - Soạn thào thêm nội dung vào website rất linh động - Đáp ứng truy vấn người dùng hoặc dử liệu được gởi từ HTML - Giảm thiểu lưu thông mạng - Trả về trang HTML nên người dùng có thể xem ở bất kì trình duyệt web nào Nhược điểm: Một bất lợi lớn đối với ASP là nó chỉ có thể hoạt động trên các họ Web server của Microsoft (bao gồm PWS trên Win9x hay IIS trên WinNT/2000/XP) 1.4.5 Javascript : Theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript. Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA-262 bản 3. ECMAScript là phiên bản chuẩn hóa của JavaScript. Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X - phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA-357. JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh,... Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt JavaScript có thể được sử dụng trong tập tin PDF của Adobe Acrobat và Adobe Reader JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C 1.5 Các hệ cơ sở dử liệu: Cơ sở dử liệu là một hệ thống tập hợp của các tập tin dược thiết kế nhầm giảm thiểu việc lập lại dử liệu Các tập tin trong cơ sở dử liệu là một thành phần của một bộ chương trình nhằm tạo lập quản lí và truy xuất các tập tin cơ sở dử liệu Hệ quản trị cơ sở dử liệu (database managements system ) viết tắc là DBMS là bộ phần mềm của những công cụ có sẳn do một số nhà sản xuất phần mềm cung cấp 1.5.1 My SQL: MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phí nằm trong nhóm LAMP (Linux - Apache -MySQL - PHP) Một số đặc điểm của MySQL MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft). MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu. MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL. Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khỏan có quyền sử dụng CSDL đó. Nếu không, chúng ta sẽ không làm được gì cả. SQL : Mô hình cơ sở dữ liệu (CSDL) quan hệ - RDBMS, do E.F Codd đưa ra vào đầu thập kỷ 70. Từ đó đến nay, nó liên tục phát triển trở thành mô hình CSDL phổ biến bậc nhất. Mô hình quan hệ gồm các thành phần sau: ƒ Tập hợp các đối tượng và / hoặc các mối quan hệ ƒ Tập hợp các xử lý tác động tới các quan hệ ƒ Ràng buộc dữ liệu đảm bảo tính chính xác và nhất quán. SQL (Structured Query Language, đọc là "sequel") là tập lệnh truy xuất CSDL quan hệ. Ngôn ngữ SQL được IBM sử dụng đầu tiên trong hệ quản trị CSDL System R vào giữa những năm 70. Hệ ngôn ngữ SQL đầu tiên (SEQUEL2) được IBM công bố vào tháng 11 năm 1976. Năm 1979, tập đoàn Oracle giới thiệu thương phẩm đầu tiên của SQL. SQL cũng được cài đặt trong các hệ quản trị CSDL như DB2 của IBM và SQL/DS. Ngày nay, SQL được sử dụng rộng rãi và đuợc xem là ngôn ngữ chuẩn để truy cập CSDL quan hệ. Chuẩn SQL Năm 1989, viện tiêu chuẩn quốc gia Hoa Kỳ (ANSI) công nhận SQL là ngôn ngữ chuẩn để truy cập CSDL quan hệ trong văn bản ANSI SQL89. Năm 1989, tổ chức tiêu chuẩn quốc tế (ISO) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ trong văn bản ISO 9075-1989. Tất cả các hệ quản trị CSDL lớn trên thế giới cho phép truy cập bằng SQL và hầu hết theo chuẩn ANSI. Năm Tên Tên khác Chú giải 1986 SQL-86 SQL-87 Được công bố đầu tiên bởi ANSI. Được phê chuẩn bởi ISO năm 1987. 1989 SQL-89 Thay đổi nhỏ. 1992 SQL-92 SQL2 Thay đổi lớn. 1999 SQL:1999 SQL3 2003 SQL:2003 Access : Là công cụ hiệu quả cho các ứng dụng quản lí hồ sơ dử liệu quan hệ hệ với nhau .tập hợp các hồ sơ dử liệu này gọi là cơ sở dử liệu quan hệ Access rất tốt cho việc tổ chức và quản lí các cơ sở dử liệu lớn bạn có thể tạo một trang web với access thông qua công nghệ asp 2. BẢO MẬT ỨNG DỤNG WEB 2.1 Bảo mật là gì? Trong thế giới thay đổi từng ngày trong việc truyền thông dữ liệu toàn cầu, những kết nối Internet rẻ tiền và tốc độ ngày một nhanh hơn thì việc bảo mật hệ thống là một vấn đề hết sức hữu ích. Bảo mật là một đòi hỏi thiết yếu bởi vì những máy tính mang tính toàn cầu đang ngày càng trở nên kém an toàn. Thử tưởng tượng một gói dữ liệu khi di chuyển từ điểm A sang điểm B, gói dữ liệu này có thể đi qua nhiều điểm trên mạng và nếu như tại một máy nào đó người sử dụng có thể lấy thông tin trên gói dữ liệu này và biết các thông tin chi tiết của máy gửi, họ có thể sử dụng các kỹ thuật cao để truy nhập bất hợp pháp vào máy gửi và có thể phá hỏng máy này hoặc toàn bộ hệ thống tùy theo mức độ thao tác. Những thao tác mà các người sử dụng bất hợp pháp này có thể làm trên hệ thống là ăn cắp thông tin hệ thống, từ chối các dịch vụ sử dụng trên hệ thống. Mục đích của việc bảo mật là thông báo cho người sử dụng, phòng ban trong hệ thống biết các vấn đề về việc bảo vệ thông tin và kỹ thuật của họ. Các luật bảo mật cũng chỉ dẫn cho họ biết thông tin về các máy mà họ có thể gặp trong đường mạng. Trước hết phải nhận ra một điều là không có một hệ thống nào là hoàn toàn bảo mật tuyệt đối. Tất cả những gì mà nhà quản trị có thể làm là tăng thêm sự khó khăn cho người dùng khi họ có ý định thâm nhập hệ thống. Nhà quản trị hệ thống cần phải quyết định sự cân bằng giữa các mục đích, ý định sử dụng của hệ thống. Cần phải quyết định mức độ bảo mật cần thiết cho hệ thống của mình. Đối với các nhà cung cấp sản phẩm thì mục tiêu của họ là cung cấp càng nhiều các dịch vụ càng tốt, đơn giản hóa các việc sử dụng dịch vụ trong hệ thống, và nói chung là tất cả những gì mà họ có thể làm để cho sản phẩm có thể tiêu thụ nhiều. Việc này vô hình chung đã làm cho nhà quản trị hệ thống trở nên phức tạp hơn. Bởi vì các dịch vụ đa dạng má các nhà cung cấp phát triển có thể trở thành cổng sau cho các cracker có thể thâm nhập hệ thống. Như vậy, có thể mô tả sự tác động của việc này đối với các nhà quản trị như sau : + Các dịch vụ chống lại các vấn đề bảo mật : như đã nói ở trên thì các dịch vụ mà các nhà cung cấp sản phẩm phát triển có thể cho phép người dùng sở hữu các nguồn tài nguyên trên hệ thống và dĩ nhiên là điều này hoàn toàn không đòi hỏi một chứng thực nào cả. Đây là một việc hết sức nguy hiểm cho hệ thống và nhiệm vụ của nhà quản trị là cần phải quyết định hạn chế các dịch vụ cần thiết trong hệ thống hơn là bảo mật cho các dịch vụ này. + Dễ dàng trong sử dụng thì khó khăn trong bảo mật : một hệ thống mà dễ dàng cho phép sự thâm nhập của người dùng là một điều hết sức nguy hiểm cho việc bảo mật hệ thống. Nên có cơ chế chứng thực cho mỗi sử dụng, điều này có thể gây rắc rối trong việc sử dụng nhưng nó làm cho hệ thống trở nên an toàn hơn, đặc biệt nếu có thể thì nên áp dụng cơ chế chứng thực thường xuyên để tăng thêm phần bảo mật cho hệ thống. + Kết quả của sự bảo mật chính là giảm sự mất mát thông tin : việc thiết lập các cơ chế bảo mật như sử dụng firewall, cơ chế chứng thực, nghiêm ngặt trong vấn đề sử dụng tương ứng sẽ làm giảm bớt sự mất mát thông tin, mất mát dịch vụ, … Điều này tương ứng với cái giá phải trả cho các nhà quản trị. 3 yếu tố đảm bảo an ninh thông tin * Tính bảo mật: đảm bảo rằng chỉ người được phép mới có thể truy cập thông tin * Tính toàn vẹn: đảm bảo tính chính xác và đầy đủ của thông tin và các phương pháp xử lý thông tin * Tính sẵn sàng: đảm bảo người sử dụng được phép có thể truy cập thông tin và các tài sản tương ứng khi cần 3 tính chất quan trọng này được viết tắt bằng nhóm từ tiếng Anh: C.I.A, trong đó C là Confidentiality (tính bảo mật); I là Integrity (tính toàn vẹn); và A là Availability (tính sẵn sàng). (Theo TCVN 7562:2005, tương đương với ISO/IEC 17799:2000) Thống kê các vụ tấn công Website 2.2 Từ phía người tấn công Phương thức tấn công *Thu thập thông tin chung: Đây là việc đầu tiên cần phải làm, ta tìm kiếm các thông tin xung quanh Website -Chủ sở hữu trang Web, đội ngũ quản trị, điều hành -Địa chỉ IP, máy chủ DNS của Server -Môi trường mạng, hệ điều hành, phần mềm máy chủ Web, ngôn ngữ lập trình, hệ CSDL -Các cổng và dịch vụ tương ứng đang mở trên Server - Số lượt truy cập, băng thông hàng tháng của Website *Khảo sát ứng dụng Web: bước tiếp theo là tập trung nghiên cứu Website -Website sử dụng ứng dụng Web nào? -Mã nguồn mở hay đóng? Phiên bản? -Nếu là mã nguồn mở thì download source code về để phân tích và kiểm tra, tìm đọc các thông tin về bug và exploit từ trang chủ của sản phẩm *Dò tìm lỗi: Dò tìm lỗi tự động: Dùng các công cụ quét và dò lỗi Website như Scrawlr, MaxQ, Selenium, Acunetix Web Vulnerability Scanner, … Giao diện của Acunetix Web Vulnerability Scanner Dò tìm lỗi bằng tay: Vận dụng các kiến thức lập trình, hệ điều hành, bảo mật và mạng máy tính, như một “người dùng tinh nghịch” hacker tiến hành các thao tác dò lỗi trực tiếp ngay trên website, nhất là ở phần nhập dữ liệu đầu vào. *Khai thác lỗi để tấn công: Đây là giai đoạn quan trọng nhất để có thể phá hoại hoặc chiếm quyền điều khiển được Website Một vài cách thức tấn công phổ biến -SQL Injections -Session Hijacking - Local Attack -Dùng các loại trojan, virus đánh cắp mật khẩu admin -DoS và DDoS +SQL Injections Khi triển khai các ứng dụng web trên Internet, nhiều người vẫn nghĩ rằng việc đảm bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấn công từ các tin tặc chỉ đơn thuần tập trung vào các vấn đề như chọn hệ điều hành, hệ quản trị cơ sở dữ liệu, webserver sẽ chạy ứng dụng, ... mà quên mất rằng ngay cả bản thân ứng dụng chạy trên đó cũng tiềm ẩn một lỗ hổng bảo mật rất lớn. Một trong số các lỗ hổng này đó là SQL inject

Các file đính kèm theo tài liệu này:

  • doctim_hieu_ve_cach_bao_mat_mot_website.doc
Tài liệu liên quan