Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 113 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
113
Dung lượng
3,07 MB
Nội dung
UDPM-CĐ-MĐ25-XDWSTM TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Giáo trình biên soạn dành cho sinh viên Trường Cao Đẳng Nghề Ứng Dụng hần Mềm theo chương trình khung Tổng cục dạy nghề Giáo trình biên soạn tảng ASP.NET Nội dung giáo trình gồm chương: CHƯƠNG 1: Lý thuyết thương mại điện tử CHƯƠNG 2: Ngôn ngữ định dạng siêu văn CHƯƠNG 3: ASP.NET CHƯƠNG 4: Các điều khiển liên kết liệu CHƯƠNG 5: Quản lý trạng thái CHƯƠNG 6: Bảo mật ứng dụng WEB Mặc dù cố gắng tránh khỏi thiếu sót, mong nhận đóng góp ý kiến độc giả để giáo trình hoàn thiện Xin chân thành cảm ơn! Cần Thơ, ngày 16 tháng năm 2018 Tham gia biên soạn Nguyễn Thị Thúy Lan MỤC LỤC TUYÊN BỐ BẢN QUYỀN LỜI GIỚI THIỆU CHƯƠNG TRÌNH MƠ ĐUN XÂY DỰNG WEBSITE THƯƠNG MẠI Chương LÝ THUYẾT THƯƠNG MẠI ĐIỆN TỬ MỤC TIÊU 1.1 THƯƠNG MẠI ĐIỆN TỬ LÀ GÌ? 1.1.1 Khái niệm thương mại điện tử 1.1.2 Các đặc trưng thương mại điện tử 1.1.3 Cơ sở để phát triển thương mại điện tử 1.2 LỢI ÍCH CỦA THƯƠNG MẠI ĐIỆN TỬ 1.2.1 Thu thập nhiều thông tin 1.2.2 Giảm chi phí sản xuất 1.2.3 Giảm chi phí bán hàng, tiếp thị giao dịch 1.2.4 Xây dựng quan hệ với đối tác 10 1.2.5 Tạo điều kiện sớm tiếp cận kinh tế trí thức 10 1.3 CÁC LOẠI HÌNH GIAO DỊCH THƯƠNG MẠI ĐIỆN TỬ 10 1.4 CÁC HÌNH THỨC HOẠT ĐỘNG CHỦ YẾU CỦA TMĐT 11 1.4.1 Thư điện tử 11 1.4.2 Thanh toán điện tử 11 1.4.3 Trao đổi liệu điện tử 12 1.4.4 Truyền nội dung số hóa 13 1.4.5 Mua bán hàng hóa hữu hình 13 Chương 15 NGÔN NGỮ ĐỊNH DẠNG SIÊU VĂN BẢN HTML 15 MỤC TIÊU 15 2.1 MƠ HÌNH WEB CLIENT/SERVER 15 2.2 NGÔN NGỮ ĐỊNH DẠNG SIÊU VĂN BẢN HTML 16 2.2.1 Cấu trúc trang HTML 16 2.2.2 Cú pháp chi tiết tag HTML 17 2.3 ĐỊNH DẠNG CƠ BẢN 18 2.3.1 Các thao tác khối 18 2.3.2 Định dạng ký tự 19 2.3.3 Định dạng đoạn 19 2.3.4 Chèn đường kẻ ngang 21 2.3.5 Chèn hình ảnh 21 2.3.6 Tìm thay đổi liệu 22 Lời khuyên: 23 2.4 LIÊN KẾT (HYPERLINK) 23 2.4.1 Liên kết đến trang web khác 23 2.4.2 Cách tạo email-link 23 2.4.3 Liên kết ImageMap 23 2.5 TẠO FRAMESET, TABLE 24 2.5.1 Frameset 24 2.5.2 Table 28 2.6 ĐỊNH DẠNG CẢI TIẾN VỚI CSS 34 2.6.1.Style Sheets 34 2.6.2 Định dạng Inline 34 2.6.3 Định dạng nhúng 34 2.6.4 Định dạng bên 35 2.7 TẠO FORM 36 2.7.1 Tạo form 36 2.7.2 Các đối tượng form 37 CHƯƠNG 3: 40 ASP.NET (ACTIVE SERVER PAGE NET) 40 3.1 TỔNG QUAN VỀ LẬP TRÌNH ỨNG DỤNG WEB 40 3.1.1 Mơ hình ứng dụng lớp 40 a Ưu điểm 41 b Khuyết điểm 41 3.1.2 Mô hình ứng dụng lớp 41 a Ưu điểm 41 b Khuyết điểm 41 3.2 NGÔN NGỮ C# 41 3.2.1 Kiểu liệu 42 3.2.2 Chuyển đổi kiểu liệu 43 3.3 GIỚI THIỆU VỀ ASP.NET? 44 3.3.1 Tìm hiểu Net Platform 44 3.3.2 Tìm hiểu Net Framework 44 3.2.3.Tìm hiểu ASP.Net 47 3.4 NHỮNG ƯU ĐIỂM CỦA ASP.NET 48 3.5 QUÁ TRÌNH XỬ LÍ TẬP TIN ASPX 49 3.6 CÁCH THỨC HOẠT ĐỘNG CỦA ASP.NET TRÊN IIS 50 3.6.1 Internet Information Services (IIS) 50 3.6.2 Cài đặt Web Server 51 3.6.3 Kiểm tra kết cài đặt 52 3.7 TẠO TRANG WEB ASP.NET ĐẦU TIÊN 53 3.7.1 Tạo trang web ASP.NET 53 3.7.2 Phân loại tập tin ASP.NET 55 3.8 LÀM VIỆC VỚI CÁC ASP.NET SERVER CONTROL 57 3.8.1 HTML Controls 57 3.8.2 Web Server Controls 58 3.8.3 Validation Controls 65 3.8.4 User Controls 74 Chương 4: 77 CÁC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU 77 4.1 ĐIỀU KHIỂN GRIDVIEW 77 4.1.1 Load liệu lên GridView 77 4.1.2 Các thao tác định dạng lưới 80 4.1.3.Xử lí xếp 84 4.1.4.Tùy biến cột (đọc thêm) 84 4.1.5.Cập nhật liệu trực tiếp lưới (tham khảo) 86 4.2 ĐIỀU KHIỂN DATALIST 87 4.2.1 Sử dụng DataList hiển thị liệu 88 4.2.2 Cập nhật liệu với DataList (tham khảo) 89 Chương 5: 92 QUẢN LÝ TRẠNG THÁI 92 5.1.ĐỐI TƯỢNG REQUEST, RESPONSE 92 5.1.1.Đối tượng Response 93 5.1.2.Đối tượng Request 94 5.2 ĐỐI TƯỢNG VIEWSTATE 94 5.3 ĐỐI TƯỢNG SESSION, APPLICATION 95 5.3.1 Đối tượng Application 95 5.3.2 Đối tượng Session 96 5.4 ĐỐI TƯỢNG SERVER 97 5.5 ĐỐI TƯỢNG COOKIES 97 5.5.1 Giới thiệu 97 5.5.2 Làm việc với Cookies 97 Chương 6: BẢO MẬT ỨNG DỤNG WEB 99 6.1 GIỚI THIỆU SƠ LƯỢC CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB 99 6.1.1 Kiểm soát truy cập Web 99 6.1.2 Chiếm hữu phiên làm việc 99 6.1.3 Lợi dụng thiếu sót việc kiểm tra giá trị nhập hợp lệ 99 6.2 CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB 100 6.2.1 Thao tác tham số truyền 100 6.2.2 Thao tác Biến ẩn Form 101 6.2.3 Thao tác Cookie .102 6.3 BẢO MẬT CƠ SỞ DỮ LIỆU (đọc thêm) 102 6.3.1 Các kỹ thuật công sở liệu 102 6.3.2 Cách phòng chống 105 TÀI LIỆU THAM KHẢO 113 CHƯƠNG TRÌNH MƠ ĐUN XÂY DỰNG WEBSITE THƯƠNG MẠI Tên mô đun: XÂY DỰNG WEBSITE THƯƠNG MẠI Mã mô đun: MĐ 25 Thời gian thực mô đun: 120 giờ; (Lý thuyết: 45 giờ; Thực hành: 70 giờ; Kiểm tra: giờ) I VỊ TRÍ, TÍNH CHẤT CỦA MƠ ĐUN Vị trí: mơ đun bố trí giảng dạy sau mơn sở nghề, Hệ quản trị CSDL, Lập trình CSDL, Phân tích thiết kế hệ thống thơng tin, Thiết kế Web Tính chất: mơ đun bắt buộc thuộc chun mơn nghề chương trình đào tạo Cao đẳng (ứng dụng phần mềm) II MỤC TIÊU CỦA MÔ ĐUN - Kiến thức: Hiểu nhu cầu quảng bá, kinh doanh công ty website; Hiểu tiến trình thiết kế xuất website thương mại; Biết số công cụ, dịch vụ xuất website; - Kỹ năng: Xác định nhu cầu thương mại điện tử doanh nghiệp, chuẩn bị đầy đủ vật liệu, nội dung xuất bản; Xây dựng sở liệu cho website; Thiết kế trang thân thiện logic; Lựa chọn tên miền ký gửi website công cụ xuất phù hợp với quy mô toán; - Năng lực tự chủ trách nhiệm: Có thái độ cẩn thận nghiêm túc, sáng tạo, khoa học, tinh thần làm việc độc lập theo nhóm III NỘI DUNG MÔ ĐUN Nội dung tổng quát phân bổ thời gian: S ố T T Thời gian Tên mô đun Tổng số Lý thuyết Thực hành, Bài tập Kiểm tra* (LT TH) Bài 1: Xác định cấu trúc, chức nhiệm vụ Website Bài 2: Xây dựng Cơ sở liệu Bài 3: Thiết kế Website 40 13 25 Bài 4: Lập trình cho website Bài 5: Hồn thiện xuất Website Tổng cộng 48 16 29 12 120 45 70 5 4 0 16 8 Chương LÝ THUYẾT THƯƠNG MẠI ĐIỆN TỬ Mã chương: MĐ25-01 MỤC TIÊU Về kiến thức - Khái niệm thương mại điện tử - Lợi ích thương mại điện tử - Các hình thức thương mại điện tử qua mạng Về nội dung Các loại hình giao dịch thương mại điện tử Các hình thức hoạt động chủ yếu thương mại điện tử 1.1.THƯƠNG MẠI ĐIỆN TỬ LÀ GÌ? 1.1.1 Khái niệm thương mại điện tử Thương mại điện tử hình thức mua bán hàng hóa dịch vụ thơng qua mạng máy tính tồn cầu Phạm vi Thương mại điện tử rộng, bao quát hầu hết lĩnh vực hoạt động kinh tế, việc mua bán hàng hóa dịch vụ hàng ngàn lĩnh vực áp dụng Thương mại điện tử Theo nghĩa hẹp thương mại điện tử gồm hoạt động thương mại tiến hành mạng máy tính mở Internet Trên thực tế, hoạt động thương mại thông qua mạng Internet làm phát sinh thuật ngữ Thương mại điện tử Thương mại điện tử gồm hoạt động mua bán hàng hóa dịch vụ qua phương tiện điện tử, giao nhận nội dung kỹ thuật số mạng, chuyển tiền điện tử, mua bán cổ phiếu điện tử, vận đơn điện tử, đấu giá thương mại, hợp tác thiết kế, tài nguyên mạng, mua sắm công cộng, tiếp thị trực tuyến với người tiêu dùng dịch vụ sau bán hàng Thương mại điện tử thực thương mại hàng hóa (ví dụ hàng tiêu dùng, thiết bị y tế chuyên dụng) thương mại dịch vụ (ví dụ dịch vụ cung cấp thơng tin, dịch vụ pháp lý, tài chính); hoạt động truyền thống (như chăm sóc sức khỏe, giáo dục) hoạt động (ví dụ siêu thị ảo) Thương mại điện tử trở thành cách mạng làm thay đổi cách thức mua sắm người 1.1.2 Các đặc trưng thương mại điện tử So với hoạt động thương mại truyền thống, thương mại điện tử có số điểm khác biệt sau: - Các bên tiến hành giao dịch thương mại điện tử không tiếp xúc trực tiếp với khơng địi hỏi phải biết từ trước - Các giao dịch thương mại truyền thống thực với tồn khái niệm biến giới quốc gia, thương mại điện tử thực thị trường khơng có biên giới (thị trường thống toàn cầu) Thương mại điện tử trực tiếp tác động đến mơi trường cạnh tranh tồn cầu - - Trong hoạt động giao dịch thương mại điện tử có tham gia ba chủ thể, có bên khơng thể thiếu người cung cấp dịch vụ mạng, quan chứng thực Đối với thương mại truyền thống mạng lưới thông tin phương tiện để trao đổi liệu, thương mại điện tử mạng lưới thơng tin thị trường 1.1.3 Cơ sở để phát triển thương mại điện tử Để phát triển TMĐT cần phải có hội đủ số sở: - - - - Hạ tầng kỹ thuật Internet phải đủ nhanh, mạnh đảm bảo truyền tải nội dung thơng tin bao gồm âm thanh, hình ảnh trung thực sống động Một hạ tầng internet mạnh cho phép cung cấp dịch vụ xem phim, xem TV, nghe nhạc, v.v trực tiếp Chi phí kết nối internet phải rẻ để đảm bảo số người dùng internet phải lớn Hạ tầng pháp lý: phải có luật thương mại điện tử cơng nhận tính pháp lý chứng từ điện tử, hợp đồng điện tử ký qua mạng; phải có luật bảo vệ quyền sở hữu trí tuệ, bảo vệ riêng tư, bảo vệ người tiêu dùng,v.v để điều chỉnh giao dịch qua mạng Phải có sở tốn điện tử an tồn, bảo mật Thanh tốn điện tử qua thẻ, qua tiền điện tử, toán qua EDI Các ngân hàng phải triển khai hệ thống toán điện tử rộng khắp Phải có hệ thống an tồn bảo mật cho giao dịch, chống xâm nhập trái phép, chống virus,… Phải có nhân lực am hiểu kinh doanh, cơng nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng tốn qua mạng 1.2 LỢI ÍCH CỦA THƯƠNG MẠI ĐIỆN TỬ 1.2.1 Thu thập nhiều thông tin Thương mại điện tử giúp người tham gia thu nhiều thông tin thị trường, đối tác, giảm chi phí tiếp thị giao dịch, rút ngắn thời gian sản xuất, tạo dựng củng cố quan hệ bạn hàng Các doanh nghiệp nắm thông tin phong phú kinh tế thị trường, nhờ xây dựng chiến lược sản xuất kinh doanh thích hợp với xu phát triển thị trường nước, khu vực quốc tế Điều đặc biệt có ý nghĩa doanh nghiệp vừa nhỏ, nhiều nước quan tâm, coi động lực phát triển kinh tế 1.2.2 Giảm chi phí sản xuất Thương mại điện tử giúp giảm chi phí sản xuất, trước hết chi phí văn phịng Các văn phịng khơng giấy tờ chiếm diện tích nhỏ nhiều, chi phí tìm kiếm chuyển giao tài liệu giảm nhiều lần (trong khâu in ấn bỏ hẳn) Điều quan trọng hơn, với góc độ chiến lược, nhân viên có lực giải phóng khỏi nhiều cơng đoạn vụ tập trung vào nghiên cứu phát triển, đưa đến lợi ích to lớn lâu dài 1.2.3 Giảm chi phí bán hàng, tiếp thị giao dịch Thương mại điện tử giúp giảm thấp chi phí bán hàng chi phí tiếp thị Bằng phương tiện Internet/Web, nhân viên bán hàng giao dịch với nhiều khách hàng, catalogue điện tử Web phong phú nhiều thường xuyên cập nhật so với catalogue in ấn có khn khổ giới hạn Thương mại điện tử qua Internet/Web giúp người tiêu thụ doanh nghiệp giảm đáng kể thời gian chi phí giao dịch (giao dịch hiểu từ trình quảng cáo, tiếp xúc ban đầu, giao dịch đặt hàng, giao dịch toán) Thời gian giao dịch qua Internet 7% giao dịch qua Fax, khoảng 0.5 phần nghìn thời gian giao dịch qua bưu điện chuyển phát nhanh, chi phí tốn điện tử qua Internet từ 10% đến 20% chi phí tốn theo lối thơng thường Tổng hợp tất lợi ích trên, chu trình sản xuất rút ngắn, nhờ sản phẩm xuất nhanh hoàn thiện 1.2.4 Xây dựng quan hệ với đối tác Thương mại điện tử tạo điều kiện cho việc thiết lập củng cố mối quan hệ thành viên tham gia vào trình thương mại: thông qua mạng (Internet/Web) thành viên tham gia (người tiêu thụ, doanh nghiệp, quan Chính phủ…) giao tiếp trực tiếp liên tục với nhau, có cảm giác khơng có khoảng cách địa lý thời gian nữa; nhờ hợp tác quản lý tiến hành nhanh chóng cách liên tục: bạn hàng mới, hội kinh doanh phát nhanh chóng phạm vi toàn quốc, toàn khu vực, toàn giới, có nhiều hội để lựa chọn 1.2.5 Tạo điều kiện sớm tiếp cận kinh tế trí thức Trước hết, thương mại điện tử kích thích phát triển ngành công nghệ thông tin tạo sở cho phát triển kinh tế tri thức Lợi ích có ý nghĩa lớn nước phát triển: khơng nhanh chóng tiếp cận kinh tế tri thức sau khoảng thập kỷ nữa, nước phát triển bị bỏ rơi hồn tồn Khía cạnh lợi ích mang tính chiến lược cơng nghệ tính sách phát triển cần cho nước cơng nghiệp hóa 1.3.CÁC LOẠI HÌNH GIAO DỊCH THƯƠNG MẠI ĐIỆN TỬ Trong thương mại điện tử có ba chủ thể tham gia: Doanh nghiệp (B) giữ vai trò động lực phát triển thương mại điện tử, người tiêu dùng (C) giữ vai trò định thành cơng thương mại điện tử phủ (G) giữ vai trò định hướng, điều tiếp quản lý Từ mối quan hệ chủ thể trên, ta có ba loại giao dịch thương mại điện tử: B-B, B-C, B-G, C-G, C-C…trong B-B B-C hai loại hình giao dịch thương mại điện tử quan trọng Business to Business (B-B): Mơ hình thương mại điện tử doanh nghiệp Thương mại điện tử B-B việc thực giao dịch doanh nghiệp với mạng Ta thường gọi giao dịch B-B Các bên tham gia giao dịch B-B gồm: người trung gian trực tuyến, người mua người bán Các loại giao dịch B-B bao gồm: mua theo yêu cầu giá thích hợp mua theo hợp đồng dài hạn, dựa đàm phán cá nhân người mua người bán Các loại giao dịch B-B bản: - Bên bán (một bên bán nhiều bên mua) mơ hình dựa cơng nghệ web cơng ty bán cho nhiều cơng ty mua Có ba phương pháp bán trực tiếp mơ hình này: Bán từ catalogue điện tử, Bán qua trình đấu giá, 10 Chương 6: BẢO MẬT ỨNG DỤNG WEB Mã chương: MĐ25-06 MỤC TIÊU Về kiến thức Cung cấp cho sinh viên kiến thức: - Bảo mật ứng dụng web - Các hình thức bảo mật Về nội dung Vận dụng kiến thức học vào thực tế để làm việc với ứng dụng web: - Chọn hình thức bảo mật phù hợp với ứng dụng web - Cấu hình ứng dụng web để có tính bảo mật cao - Khai thác thành công đặc điểm tiên tiến Asp.Net hỗ trợ phát triển ứng dụng web bảo mật 6.1 GIỚI THIỆU SƠ LƯỢC CÁC KỸ THUẬT TẤN CƠNG ỨNG DỤNG WEB 6.1.1 Kiểm sốt truy cập Web Thâm nhập hệ thống qua cửa sau (Back-door) Trong trình thiết kế ứng dụng, người phát triển ứng dụng cài “cửa sau” (back door) để sau thâm nhập vào hệ thống cách dễ dàng 6.1.2 Chiếm hữu phiên làm việc Ấn định phiên làm việc Là kỹ thuật công cho phép Hacker mạo danh người dùng hợp lệ cách gửi SessionID hợp lệ đến người dùng, sau người dùng đăng nhập vào hệ thống thành công, Hacker dùng lại SessionID trở thành người dùng hợp lệ Đánh cắp phiên làm việc Là kỹ thuật công cho phép Hacker mạo danh người dùng hợp lệ sau nạn nhân đăng nhập vào hệ thống cách giải mã SessionID họ lưu trữ Cookie hay tham số URL, biến ẩn Form 6.1.3 Lợi dụng thiếu sót việc kiểm tra giá trị nhập hợp lệ Hacker lợi dụng ô nhập liệu để gởi đoạn mã khiến cho khiến cho hệ thống phải thực thi đoạn lệnh hay bị phá vỡ hồn tồn 99 Kiểm tra tính đắn liệu ngơn ngữ phía trình duyệt Do ngơn ngữ phía trình duyệt (JavaScript, VB Script) thực thi trình duyệt nên hacker sửa đổi mã nguồn để vơ hiệu hóa kiểm tra Tràn đệm Một khối lượng liệu gửi cho ứng dụng vượt lượng liệu cấp phát khiến cho ứng dụng không thực thi câu lệnh dự định mà thay vào phải thực thi đoạn mã hacker đưa vào hệ thống Chèn mã lệnh thực thi trình duyệt nạn nhân Đây kỹ thuật công chủ yếu nhằm vào thông tin máy tính người dùng vào hệ thống máy chủ Bằng cách thêm đoạn mã (thường lập trình ngơn ngữ JavaScript, VBScript), Hacker thực việc đánh cắp thơng tin quan trọng Cookie để từ trở thành người dùng hợp lệ ứng dụng dựa thông tin đánh cắp Chèn câu truy vấn SQL Trong lập trình với sở liệu, người lập trình sai sót vấn đề kiểm tra giá trị nhập vào để từ hacker lợi dụng thêm vào câu truy vấn hay giá trị không hợp lệ để dễ dàng đăng nhập vào hệ thống 6.2.CÁC KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB 6.2.1 Thao tác tham số truyền Thao tác tham số truyền kỹ thuật thay đổi thông tin quan trọng Cookie, URL, hay biến ẩn form Các kỹ thuật công cần dùng đến tham số để hồn thiện bước cơng hacker Có thể nói tham số truyền đầu mối cho hoạt động hacker trình cơng ứng dụng a) Thao tác URL Ví dụ có trang web ứng dụng cho phép thành viên thay đổi mật http://www.nganhang.com/example?user=thang&newpass=123 Với: + username tên người cần thay đổi mật + newpass mật cho username Tuy nhiên cách thay đổi tham số sau: http://www.nganhang.com/example?user=admin&newpass=111111 Hacker thay đổi mật admin mật bất kỳ, ví dụ ‘111111’ b) Biện pháp khắc phục Để chống lại kiểu công thay đổi nội dung chuỗi URL, ứng dụng áp dụng biện pháp sau: Sử dụng chế bảng băm (hash table): Sau người dùng chứng thực thành công với username, ứng dụng sinh khóa tương ứng Khóa lưu server với biến username đối tượng bảng băm Mỗi người dùng kết nối đến ứng dụng, khóa username gửi so sánh với khóa username bảng băm Nếu tương ứng với 100 ghi liệu hợp lệ Ngược lại server biết người dùng thay đổi URL Ngoài ra, với thơng tin có giá trị, cần mã hóa thơng tin trước cho hiển thị trình duyệt để tránh bị hacker sửa đổi 6.2.2 Thao tác Biến ẩn Form a) Biến ẩn Form Biến ẩn Form khơng hiển thị hình trình duyệt người dùng tìm thấy nội dung “View | Page Source” menu trình duyệt, điểm yếu để hacker lợi dụng cách thay đổi nội dung trang web gửi đến trình chủ Ví dụ form gốc có nội dung sau: … … Nếu khơng có thay đổi u cầu đến trình chủ có nội dung: POST /cuahang.pl HTTP/1.0 … Giaca=99.99 Nhưng hacker gán giá trị khác cho trường “giaca”: … … Thì yêu cầu thay đổi: POST /cuahang.pl HTTP/1.0 … Giaca=0.99 b) Biện pháp khắc phục Chỉ nên sử dụng biến ẩn form để hiển thị liệu trình duyệt, khơng sử dụng giá trị biến ẩn để thao tác xử lí ứng dụng 101 Ghép tên giá trị biến ẩn thành chuỗi đơn Sử dụng thuật tốn mã hóa MD5 kiểu hash chiều khác để tổng hợp chuỗi lưu vào biến ẩn (hidden field) gọi “chuỗi mẫu” Khi giá trị form gửi đi, thao tác form thực lại với khóa mà ta định trước Sau đem so sánh với “chuỗi mẫu”, chúng khơng khớp chứng tỏ giá trị biến ẩn bị thay đổi Dùng sessionID để tham chiếu đến thông tin lưu trữ sở liệu 6.2.3 Thao tác Cookie Vì cookie thành phần lưu trữ thông tin bảo mật nên Cookie thường dùng để lưu giữ trạng thái cho giao thức HTTP biến ẩn form biến URL Nó cịn dùng để lưu trữ thông tin người dùng sử dụng ứng dụng liệu khác session Tất loại cookie persistent hay non-persistent, secure hay insecure bị thay đổi người dùng gởi cho trình chủ Do đó, hacker thay đổi nội dung cookie để phá hoại ứng dụng Một số biện pháp khắc phục: Sử dụng đối tượng session lưu trữ thông tin quan trọng trình chủ Khi ứng dụng cần kiểm tra thông tin người dùng, ứng dụng dùng sessionID người dùng để đến thông tin người dùng cache hay sở liệu Xây dựng chế kiểm tra nội dung cookie để tìm giá trị khơng hợp lệ từ biết cookie giả Ví dụ, biến cờ “người quản trị” thiết lập cookie, giá trị giá trị số thứ tự người dùng cookie lại không giống giá trị số thứ tự “người quản trị” lưu trữ server Phương pháp cuối mã hóa cookie Có số phương pháp mã hóa symmetric (dùng khóa cho mã hóa giải mã) hay asymmetric (mã hóa dùng khóa riêng biệt, khóa dùng chung cho mã hóa khóa riêng để giải mã) 6.3.BẢO MẬT CƠ SỞ DỮ LIỆU (đọc thêm) 6.3.1 Các kỹ thuật công sở liệu a) Sửa đổi nội dung câu truy vấn Sửa đổi nội dung câu truy vấn (SQL Injection) cách lợi dụng lỗ hổng trong trình lập trình Web phần truy xuất sở liệu Đây không khuyết điểm riêng SQL Server mà vấn đề chung cho sở liệu khác MS Access hay Oracle Khi Hacker gửi liệu (thông qua webform), ứng dụng web thực trả cho trình duyệt kết câu truy vấn hay thơng báo lỗi có liên quan đến sở liệu Và nhờ thông tin mà hacker biết nội dung sở liệu điều khiển tồn hệ thống ứng dụng Dưới kỹ thuật SQL Injection đơn giản để vượt qua form đăng nhập: Giả sử ứng dụng Web có đoạn mã sau: 102 SQLQuery= “SELECT Username FROM User WHERE Username= ‘”&strUsername& “’AND PASSWORD= ‘”&Password& “’” flag=GetQueryResult(S QLQuery) If flag= “” then check=FALSE Else check=TRUE End if Đoạn mã kiểm tra chuỗi nhập Username Password Nếu tồn bảng User kiểm tra ngược lại biến kiểm tra gán false Giá trị nhập vào là: Username: ’OR ‘’=’ Password: ’or ‘’=’ SQLQuery= “SELECT Username FROM User WHERE Username= ‘’ OR ‘’= ‘’ AND PASSWORD= ‘’ OR ‘’= ‘’ Câu lệnh SQL lúc sau: Câu lệnh so sánh ln ln (vì ‘’ ln ‘’) Do đó, câu điều kiện mệnh đề WHERE luôn Giá trị tên người sử dụng bảng chọn Kết hợp với ký tự đặc biệt SQL: Ký tự “;”: đánh dấu kết thúc câu truy vấn Ký tự “ ”: ẩn chuỗi ký tự phía sau dịng Hoặc giá trị nhập vào là: Username: ’; drop table User-Password: Câu lệnh SQL sau: SQLQuery= “SELECT Username FROM User WHERE Username= ‘admin’—AND PASSWORD= ‘”&Password& “’” Câu lệnh cho phép đăng nhập vào hệ thống với quyền admin mà khơng địi hỏi password b) Tấn công dựa vào câu lệnh HAVING câu lệnh kết hợp UNION HAVING sử dụng chung với mệnh đề GROUP BY phương pháp hữu hiệu để nhận thông tin bảng liệu, trường liệu Lệnh SELECT dùng để lấy thông tin từ sở liệu Thơng thường vị trí chèn thêm vào mệnh đề SELECT sau WHERE Để trả nhiều dịng thơng tin bảng, thay đổi điều kiện mệnh đề WHERE cách chèn thêm UNION SELECT Sau ví dụ thực nội dung sở liệu dựa vào HAVING, GROUP BY, UNION: Đầu tiên, để biết tên bảng tên trường mà câu truy vấn sử dụng, sử dụng câu điều kiện “having” ví dụ sau: Giá trị nhập vào: 103 Username: ’having 1=1-Lỗi phát sinh: Column ‘User.Username’is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause Nhờ vào lỗi phát sinh mà biết bảng sử dụng câu truy vấn User bảng tồn trường tên Username Sau sử dụng GROUP BY Username: ‘group by User.Username having 1=1-Lỗi phát sinh: Column ‘User.Password’is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause Như vậy, Password trường bảng User sử dụng câu truy vấn Tiếp tục dùng GROUP BY biết tất trường bảng User tham gia vào câu truy vấn Khi khơng cịn báo lỗi cú pháp GROUP BY chuyển qua công đoạn kiểm tra kiểu trường bảng Lúc UNION sử dụng Username: ’union select sum(Username) from User Lệnh SUM() lệnh tính tổng cho đối số bên dấu ngoặc Đối số phải kiểu số Nếu đối số không kiểu số phát sinh lỗi sau: The sum or average aggregate operation cannot take a varchar data type as an argument Với thơng báo lỗi Username chắn phải kiểu varchar Với phương pháp dễ dàng xác định trường bảng Sau nhận đầy đủ thơng tin hacker dễ dàng tự thêm thông tin vào bảng User Username: ’; inser int User(Username,Password) t o values(‘admin’,‘’)-Hacker thêm nội dung ví dụ trở thành người quản trị mạng mà không cần mật để chứng thực c) Tấn cơng dựa vào câu lệnh INSERT Từ khóa INSERT dùng để đưa thông tin vào sở liệu Thông thường câu lệnh INSERT dùng trường hợp như: thông tin đăng ký người sử dụng Kỹ thuật “;”, “ ” dùng dùng với câu lệnh SELECT, phải đảm bảo số lượng kiểu giá trị nhập vào nhằm tránh lỗi cú pháp (nếu không xác định kiểu liệu nhập tất số) d) Tấn công dựa vào STORED PROCEDURE 104 Stored Procedure sử dụng lập trình Web với mục đích giảm phức tạp ứng dụng tránh công kỹ thuật SQL Injection Tuy nhiên hacker lợi dụng Store Procedure để công vào hệ thống Ví dụ, Stored Procedure sp_login gồm hai tham số username password Nếu nhập: Username: nhimmap Password: ‘;shutdown-Lệnh gội Stored Procedure sau: Exec sp_login ‘nhimmap’,‘’;shutdown-Lệnh shutdown thực dừng SQL Server 6.3.2 Cách phịng chống Trong hầu hết trình duyệt, ký tự nên mã hóa địa URL trước sử dụng Việc công theo SQL Injection dựa vào câu thơng báo lỗi việc phịng chống hay khơng cho hiển thị thông điệp lỗi cho người dùng cách lỗi thông báo trang người phát triển thiết kế lỗi xảy ứng dụng Kiểm tra kỹ giá trị nhập vào người dùng, thay ký tự ‘; v.v Hãy loại bỏ ký tự meta “ ‘, /, \, ; “ ký tự extend NULL, CR, LF, … string nhận từ: o Dữ liệu nhập người dùng đệ trình o Các tham số từ URL o Các giá trị từ Cookie Đối với giá trị numeric, chuyển sang integer trước thực câu truy vấn SQL, dùng ISNUMERIC để chắn số integer. Dùng thuật toán để mã hóa liệu. Viết câu lệnh SQL an tồn o Hạn chế viết SELECT * FROM: Nếu bảng liệu có trường câu truy vấn ghi nhiêu Sử dụng * nhanh chóng mức độ người cơng tận dụng lỗi phát sinh sử dụng * o Khi thiết kế liệu hệ quản trị CSDL nên tạo trường (khóa chính) cho bảng o Sử dụng thủ tục (Store Procedure) chạy nhanh an toàn 105 CÂU HỎI Hãy nêu kỹ thuật công ứng dụng web? Trình bày hình thức bảo mật phân tích ưu, nhược điểm hình thức bảo mật đó? Trình bày kỹ thuật cơng sở liệu cách phòng chống? Hãy xây dựng trang đăng nhập vào ứng dụng web cấu hình bảo mật cho ứng dụng này? 106 BÀI TẬP TỔNG HỢP Yêu cầu 1: Tạo Cơ sở liệu đặt tên DBDatTour tạo bảng liệu sau DBDatTour: Bảng Đặt tour: tblDatTour ( soDatTour int (identity) (primary key), hoTen nvarchar(100), dienThoai nvarchar(100), email nvarchar(100), gioiTinh bit, maThanhPho int, goiDichvu int, soNguoi int, ngayKhoiHanh date, thamQuanDem bit, muaSam bit, thueXe bit ) Bảng thành phố: tblThanhPho ( maThanhPho int (primary key), tenThanhPho nvarchar(100) ) Nhập liệu vào bảng tbl ThanhPho thành phố Yêu cầu 2: Xây dựng trang Web giao diện đây: - Combobox Thành phố chứa liệu bảng tblThanhPho với thông tin hiển thị tenThanhPho, thông tin giá trị maThanhPho 107 Yêu cầu 3: Khi Click nút đặt Tour, thực yêu cầu sau Server side: - Kiểm tra họ tên hợp lệ, bao gồm ký tự chữ Nếu không hợp lệ, hiển thị thông báo “Nhập họ tên có ký tự chữ.” Kiểm tra số điện thoại hợp lệ, bao gồm ký tự số Nếu không hợp lệ, hiển thị thông báo “Nhập điện thoại có ký tự số.” Kiểm tra email hợp lệ Nếu không hợp lệ, hiển thị thông báo “Nhập email hợp lệ.” Kiểm tra thơng tin giới tính phải chọn Nếu chưa chọn thơng báo “Phải chọn giới tính.” Kiểm tra thơng tin gói dịch vụ phải chọn Nếu chưa chọn thơng báo “Phải chọn gói dịch vụ.” Kiểm tra thơng tin số người hợp lệ, bao gồm ký tự số Nếu không hợp lệ, hiển thị thông báo “Nhập số người có ký tự số.” Nếu số người hợp lệ, kiểm tra số người phải lớn Nếu số người 0, hiển thị thơng báo “Phải có người tham gia tour.” Kiểm tra ngày khởi hành theo định dạng “Năm – tháng – ngày(yyyy-mm-dd)” (ví dụ 2011-01-01) Nếu không hợp lệ, hiển thị thông báo, “Phải nhập ngày tháng theo định dạng Năm – tháng – ngày(yyyy-mm-dd) Ví dụ 2011-01-01.” - - Nếu ngày tháng định dạng, kiểm tra ngày khởi hành sau ngày ngày Nếu không thỏa điều kiện, hiển thị thông báo “Ngày khởi hành phải sau ngày ngày.” Nếu điều kiện kiểm tra thỏa, lưu thông tin đặt tour vào bảng tblDatTour Giới tính có giá trị False Nữ chọn, True Nam chọn Gói dịch vụ có giá trị Gói chọn, Gói chọn, Gói chọn Các dịch vụ yêu cầu có giá trị True chọn, False không chọn Chú ý: - Thông báo liệu nhập không thỏa điều kiện hiển thị trang Web nhập liệu Các liệu nhập kiểm tra phải hiển thị lại control hiển thị thông báo Yêu cầu kiểm tra thực serverside, khơng sử dụng Controls có sẵn tính kiểm tra 108 Yêu cầu 4: Sau lưu thông tin, hiển thị trang Web khác thông báo kết theo giao diện đây: Xin cảm ơn ông Nguyễn Thanh Long đặt tour công ty chúng tơi Xin vui lịng xem lại thơng đặt tour ơng THƠNG TIN TOUR Họ tên: Nguyễn Thanh Long Điện thoại: 0903456789 Email: thanhlongnguyen@gmail.com Giới tính: Nam Thành phố: Hà Nội Gói dịch vụ: Gói Số người: Ngày khởi hành: 2011-05-06 Dịch vụ yêu cầu: -Thuê xe Tổng số tiền: 252 Chú ý: - Tùy theo giới tính mà thay đổi Anh/Chị cho phù hợp - Cách tính tổng số tiền theo cơng thức sau số người * số tiền người Thông tin số tiền người dựa liệu bảng giá tour người - Ví dụ, người đặt tour gói với người, số tiền người 7*36 = 252 Số người\Gói dịch vụ Gói Gói Gói đến 20 40 50 đến 10 18 36 45 11 đến 15 15 32 40 16 trở lên 12 28 35 109 BÀI TẬP TỔNG HỢP Yêu cầu 1: Tạo Cơ sở liệu đặt tên DBGhiDanh tạo bảng liệu sau DBGhiDanh: Bảng Ghi danh: tblGhiDanh ( maGhiDanh nvarchar(100) (identity) (primary key), hoVaTen nvarchar(100), ngaySinh date, gioiTinh nvarchar(100), dienThoai nvarchar(100), email nvarchar(100), maNganh int, dangKyKTX nvarchar(100), ) Danh mục ngành: tblNganh ( maNganh int (primary key), tenNganh nvarchar(100) ) Nhập liệu vào bảng tblNganh ngành Yêu cầu 2: Xây dựng trang Web giao diện đây: - Listbox Ngành đăng ký chứa liệu bảng tblNganh với thông tin hiển thị tenNganh, thông tin giá trị maNganh 110 Yêu cầu 3: Khi Click nút Lưu, thực yêu cầu sau Server side: - Tất đối tượng có dấu (*) bắt buộc phải nhập Nếu không nhập, không chọn, chương trình khơng cho phép lưu vào Cơ sở liệu; - Kiểm tra Mã ghi danh hợp lệ với chiều dài Mã đăng ký ký tự ký tự đầu ký tự chữ ký tự ký số Ví dụ: LQD12345; - Kiểm tra Họ chữ lót hợp lệ, bao gồm ký tự chữ Nếu không hợp lệ, hiển thị thơng báo “Họ chữ lót nhập sai”; - Kiểm tra Tên hợp lệ, bao gồm ký tự chữ Nếu không hợp lệ, hiển thị thông báo “Tên nhập sai”; - Kiểm tra Ngày sinh theo định dạng “Ngày – Tháng – Năm (dd-mm-yyyy)” (ví dụ 10-01-2011 Nếu không hợp lệ, hiển thị thông báo, “Phải nhập ngày tháng theo định dạng dd-mm-yyyy”; - Nếu Ngày sinh định dạng, kiểm tra đến ngày tại, tuổi người đăng ký phải 18 Nếu không thỏa điều kiện, hiển thị thông báo “Người ghi danh phải từ 18 tuổi trở lên.” - Kiểm tra địa Email hợp hệ theo cấu trúc tên_email@tên_miền Ví dụ: tên_email: lelong Tên_miền: @yahoo.com.vn Địa email: lelong@yahoo.com.vn Nếu không hợp lệ, hiển thị thông báo “Địa Email không hợp lệ” Dữ liệu hợp lệ lưu vào Cơ sở Dữ liệu theo yêu cầu sau: - Cột hoVaTen lưu liệu Họ chữ lót Tên Các từ họ, chữ lót, tên cách khoảng trắng; - Cột gioiTinh lưu giá trị “Nam” nút giới tính Nam chọn lưu giá trị “Nữ” nút giới tính Nữ chọn; - Cột dangKyKTX lưu giá trị “Có” checkbox Đăng ký Ký túc xá chọn, ngược lại lưu giá trị “Không”; - Các cột maGhiDanh, dienThoai, email, maNganh lưu liệu hợp lệ nhập Chú ý: - Thông báo liệu nhập không thỏa điều kiện hiển thị trang Web nhập liệu - Các liệu nhập kiểm tra phải hiển thị lại control hiển thị thông báo - Yêu cầu kiểm tra thực server side, khơng sử dụng Controls có sẵn tính kiểm tra Yêu cầu 4: Nếu thông tin nhập vào hợp lệ nút Lưu nhấn, chương trình hiển thị thông tin nhập trang Web khác thông báo câu “Dữ liệu lưu vào Cơ sở Dữ liệu” với tên thí sinh 111 Ví dụ : 112 TÀI LIỆU THAM KHẢO Dương Tố Dung, Giáo trình thương mại điện tử dành cho doanh nghiệp, từ http://www.ebook.edu.vn, 2005 Các website thương mại Website :http://vdcsieuthi.vnn.vn, www.tienphong-vdc.com.vn Nguyễn Đăng Hậu (2004), Kiến thức thương mại điện tử, Viện Đào tạo Công nghệ Quản lý quốc tế - Khoa Công nghệ thơng tin Hà Thành – Trí Việt (2009), Làm quen với Internet Nguyễn Phương Lan, Lê Hữu Đạt (2001), ASP.NET: Giáo trình tin học lý thuyết tập, NXB Giáo dục Tp.HCM Dương Quang Thiện (2005), NET Tồn Tập - Lập Trình Web Dùng ASP.NET Và C# - Tập Dương Quang Thiện (2005), NET Tồn Tập - Lập Trình Web Dùng ASP.NET Và C# - Tập www.microsoft.com/net/ 10 Phạm Hữu Khang (2007), C# 2005: tập 5: Lập trình ASP.NET 2.0:Quyển 3: Điều khiển kết nối sở liệu, NXB Lao động – Xã hội TPHCM 11 http://www.scribd.com/doc/53368069/Tai-Lieu-Giang-Day-ASP-netLelongt1k4 12 http://chienuit.wordpress.com/2011/06/11/gridview-trong-asp-net/ 13 http://codeproject.com 14 http://dotnetspider.com 113