Sự phát triển nhanh chóng của mạng và công nghệ thông tin, sự bùng nổ của Internet đã mang lại những thay đổi chưa từng thấy trong thương mại điện tử, nó tác động mạnh mẽ đến lĩnh vực ng
Trang 1MỤC LỤC LỜI CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined
MỤC LỤC 1
LỜI MỞ ĐẦU 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5
1.1 Một số định nghĩa trong thương mại điện tử 5
1.1.1 Thương mại điện tử 5
1.1.2 Kinh doanh điện tử 5
1.1.3 Mô hình thương mại điện tử 5
1.1.4 Thị trường điện tử 5
1.1.5 Sàn giao dịch 5
1.1.6 Thanh toán điện tử 6
1.2 Các công đoạn của một giao dịch thương mại điện tử 7
1.3 Vai trò của thương mại điện tử 8
1.4 Lợi ích và giới hạn của thương mại điện tử 9
1.4.1 Lợi ích 9
1.4.2 Hạn chế 11
1.5 Một số vấn đề cần lưu ý khi tham gia thương mại điện tử 12
1.5.1 Bảo mật 12
1.5.2 Vấn đề ẩn danh 13
1.5.3 Vấn đề tiêu xài hai lần 13
1.6 Bảo mật cho ứng dụng web 14
1.6.1 Quản lý truy cập 14
1.6.2 Loại trừ những đoạn mã gây nguy hiểm .15
1.6.3 Hoạt động ghi lại 15
1.6.4 Sao lưu dữ liệu 16
1.7 Những lỗ hổng nghiêm trọng và cách khắc phục 16
1.7.1 Mật khẩu đưa vào tự động hoàn thành 16
1.7.2 Đường liên kết bị hỏng - Broken Link 17
1.7.3 Địa chỉ thư điện tử(email) được tìm thấy ở trên trang Web 17
1.7.4 Tiêm câu lệnh SQL (SQL Injection) 18
1.8 Apache Web Server 19
1.9 Tìm hiểu về PHP 20
1.9.1 PHP là gì ? 20
1.9.2 Các kiểu dữ liệu 21
1.9.3 Biến - giá trị 22
1.9.4 Hằng số (constants_cố định) 23
1.9.5 Biểu Thức 24
1.9.6 Các Cấu Trúc Lệnh 24
1.9.7 Hàm 25
1.9.8 Toán tử 27
Trang 21.9.9 Lớp và đối tượng 28
1.9.10 Tham chiếu 30
1.9.11 Thao tác với ảnh 31
1.10 MySQL là gì? 31
1.10.1 Các kiểu dữ liệu trong MySQL 32
1.11 Nhúng JavaScript vào file HTML 36
1.12 Lựa chọn công cụ thiết kế 37
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 38
2.1 Khảo sát cho hệ thống 38
2.1.1 Giới thiệu về Công ty Thương Mại Tuổi Trẻ Hòa Bình 38
2.1.2 Cơ cấu hoạt động của công ty 38
2.2 Đưa ra yêu cầu hệ thống 40
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 48
3.1 Sơ đồ phân cấp chức năng hệ thống 48
3.2 Sơ đồ luồng dữ liệu 48
3.2.1 Sơ đồ luồng dữ liệu mức khung cảnh 48
3.2.2 Sơ đồ luồng dữ liệu mức đỉnh 49
3.2.3 Sơ đồ luồng dữ liệu mức dưới đỉnh 49
3.3 Thiết kế bảng dữ liệu 53
3.3.1 Bảng Customer (khách hàng) 53
3.3.2 Bảng tài khoản admin 53
3.3.3 Bảng News (tin tức) 53
3.3.4 Bảng liên hệ 54
3.3.5 Bảng Partner (đối tác_quảng cáo) 54
3.3.6 Bảng tài khoản thẻ tín dụng 54
3.3.7 Bảng Categories (danh mục hàng) 55
3.3.8 Bảng Order (hoá đơn đặt hàng) 55
3.3.9 Bảng Order-details (hoá đơn chi tiết) 55
3.3.10 Bảng giới thiệu và thông báo (Giới thiệu công ty và thông báo) 55
3.3.11 Bảng Products (sản phẩm) 56
3.3.12 Bảng Paymen (phương thức thanh toán): 56
3.4 Mô hình thực thể liên kết ERD 57
3.5 Giao diện hệ thống 58
3.5.1 Khung giao diện trang chủ 58
3.5.2 Khung giao diện trang admin 59
3.5.3 Một số trang chính của chương trình: Trang chủ 60
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
Trang 3LỜI MỞ ĐẦU
Việt Nam gia nhập tổ chức thương mại thế giới WTO là một bước tiến rất quan trọng trong bối cảnh phát triển “siêu tốc” của thương mại toàn cầu Trong
đó, việc giao dịch thương mại điện tử E-commerce (TMĐT) là một hoạt động đã
và đang đóng vai trò quan trọng thúc đẩy nền kinh tế thế giới phát triển Hiện nay, một trong những ứng dụng to lớn của TMĐT là hình thức bán hàng qua mạng Sự phát triển nhanh chóng của mạng và công nghệ thông tin, sự bùng nổ của Internet đã mang lại những thay đổi chưa từng thấy trong thương mại điện tử,
nó tác động mạnh mẽ đến lĩnh vực ngân hàng truyền thống, thúc đẩy sự phát triển thương mại điện tử và làm xuất hiện hàng ngày các sản phẩm mới có liên quan đến ngân hàng như thẻ tín dụng, giao dịch ngân hàng qua điện thoại di động và tiền điện tử hay ví điện tử cũng đang trở thành hiện thực Trên thế giới, tiền điện tử đã và đang được ứng dụng thành công, nhưng khái niệm “tiền điện tử” vẫn còn khá mới mẻ ở Việt nam Với sự phát triển mạnh của TMĐT, các website TMĐT sẽ không tránh khỏi những lỗ hổng, khi đó bị tin tặc, hacker tấn công lấy cắp đi thông tin dữ liệu, làm cho người dùng bị lộ thông tin khi thanh toán trực tuyến qua website TMĐT Do đó, yêu cầu đặt ra là cần thiết an toàn bảo mật thông tin trong TMĐT, có các giải pháp nhằm bảo mật thông tin và hạn chế thông tin bị tiết lộ khi giao dịch qua các website TMĐT
Trong bối cảnh như vậy đã khiến em chọn đề tài: “An toàn bảo mật thông tin trong thương mại điện tử” làm đồ án tốt nghiệp Thực hiện đồ án tốt
nghiệp lần này do được thầy giáo Th.S Nguyễn Văn Huân hướng dẫn nên em đã chọn cách “nâng cấp” hệ thống website TMĐT, bán hàng điện thoại di động cho Công ty thương mại tuổi trẻ hòa bình đã xây dựng trong đợt thực hiện đề tài tốt nghiệp kỳ trước, với phương thức an toàn bảo mật thông tin thanh toán trực tuyến
và đưa ra các giải pháp an toàn hơn cho người dùng
Đề tài xây dựng một demo website TMĐT và một vài các giải pháp an toàn cần thiết cho website này Với khả năng lập trình ngôn ngữ PHP và sử dụng hệ quản trị cơ sở dữ liệu MySQL, các công cụ hỗ trợ thiết kế website, cùng với những
Trang 4nghiên cứu chưa sâu về các giải pháp an toàn bảo mật còn nhiều hạn chế, đề tài của em chắc chắn sẽ còn nhiều điểm thiếu sót Rất mong nhận được sự quan tâm đánh giá, đóng góp ý kiến của thầy cô giáo và các bạn sinh viên để em ngày càng hoàn thiện sản phẩm của mình hơn
Sau đây là nội dung tổng quan về hướng phân tích, thiết kế hệ thống trong bản đồ
án này:
Chương 1 : Cơ sở lý thuyết
Trình bày các hiểu biết về thương mại điện tử: các khái niệm, vai trò, cách thức thực hiện, lợi ích, giới hạn, an toàn bảo mật và bảo mật ứng dụng web
Trình bày một số lỗ hổng và các giải pháp khắc phục
Trình bày ngôn ngữ PHP, HQT CSDL MySQL, Apache Websever Đó là các công cụ chính để thiết kế chương trình “Bộ ba” công cụ này hiện được ứng dụng rất rộng rãi và phổ biến, phù hợp với các dự án vừa và nhỏ
Chương 2 : Phân tích hệ thống
Tiếp cận bài toán theo hướng chức năng nhằm đưa ra các giải pháp an toàn bảo mật thông tin cho hệ thống website
Phân tích bài toán từ tổng quan tới chi tiết theo 2 mảng chính là:
Các yêu cầu của công ty đối với hệ thống từ đó xây dựng các chức năng cần thiết của một hệ thống website TMĐT
Định hướng chức năng mà hệ thống sẽ cung cấp cho khách hàng, giúp khách hàng có thể khai thác các thông tin hữu ích mà không dò rỉ thông tin và quan trọng nhất là giải pháp an toàn thông tin cho website, chính xác và hiệu
quả cao
Chương 3 : Thiết kế hệ thống
Thiết kế các sơ đồ từ khái quát, tổng quan tới chi tiết: sơ đồ phân cấp chức năng, sơ đồ luồng dữ liệu mức khung cảnh, mức đỉnh và các sơ đồ mức dưới đỉnh, sơ đồ thực thể liên kết ERD
Thiết kế các bảng dữ liệu của hệ thống
Trang 5CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT
1.1 Một số định nghĩa trong thương mại điện tử
1.1.1 Thương mại điện tử
Thương mại điện tử ( Electronic commerce - EC) là một từ dùng để mô tả quá trình mua, bán và trao đổi mặt hàng, dịch vụ và thông tin qua mạng máy tính bao gồm cả mạng Internet
1.1.2 Kinh doanh điện tử
Kinh doanh điện tử (Bussiness ecomerce) là một định nghĩa khái quát hơn của thương mại điện tử, nó không chỉ là sự mua, bán hàng hoá, dịch vụ mà nó còn là sự phục vụ khách hàng, hợp tác giữa các đối tác kinh doanh và hướng dẫn các phiên giao dịch điện tử trong một tổ chức
1.1.3 Mô hình thương mại điện tử
Một mô hình thương mại là một phương thức kinh doanh của một công ty phát sinh ra lợi nhuận để duy trì công ty Mô hình thương mại giải thích một công ty đóng vai trò như thế nào trong một dây chuyền
Một đặc điểm lớn nhất của EC là nó có thể tạo ra các mô hình thương mại mới
1.1.4 Thị trường điện tử
Thị trường điện tử đang phát triển một cách nhanh chóng như một phương tiện truyền bá cách thức kinh doanh trực tuyến Nó là một mạng lưới sự tác động qua lại và các mối quan hệ, mà ở nơi đó mặt hàng, thông tin, dịch vụ và việc chi trả đều có thể trao đổi
1.1.5 Sàn giao dịch
Sàn giao dịch là một loại đặc biệt của thị trường điện tử Giá cả trong thị trường có thể được quy định và giá cả có thể thay đổi do phụ thuộc vào thời gian thực, làm cho phù hợp giữa yêu cầu và sự cung cấp Thị trường mà kiểm soát được sự đối xứng, gọi là sự trao đổi và trong EC, nó là trao đổi điện tử Theo mô hình hiệu quả nhất của EC, sự đối xứng và định giá được tiến hành theo thời gian
Trang 61.1.6 Thanh toán điện tử
Thanh toán điện tử (Electronic payment) là việc thanh toán tiền thông qua thông điệp điện tử (Electronic message) thay cho việc giao dịch dùng tiền mặt
Ví dụ, trả lương bằng cách chuyển tiền trực tiếp vào tài khoản, trả tiền mua hàng bằng thẻ mua hàng, thẻ tín dụng v.v… thực chất đều là dạng thanh toán điện tử Ngày nay, với sự phát triển của TMĐT, thanh toán điện tử đã mở rộng sang các lĩnh vực mới đó là:
Trao đổi dữ liệu điện tử tài chính (Financial Electronic Data Interchange, gọi tắt
là FEDI) chuyên phục vụ cho việc thanh toán điện tử giữa các công ty giao dịch với nhau bằng điện tử
Tiền mặt Internet (Internet cash) là tiền mặt được mua từ một nơi phát hành (ngân hàng hoặc một tổ chức tín dụng nào đó), sau đó được chuyển đổi tự
do sang các đồng tiền khác thông qua Internet, áp dụng trong phạm vi một nước cũng như giữa các quốc gia Tất cả đều được thực hiện bằng kỹ thuật số hoá, vì thế tiền mặt này còn có tên gọi là “tiền mặt số hoá” (digital cash), có công nghệ đặc thù chuyên phục vụ mục đích này, đảm bảo mọi yêu cầu của người bán và người mua theo luật quốc tế Tiền mặt Internet được người mua hàng mua bằng đồng nội tệ, rồi dùng mạng Internet để chuyển cho người bán hàng
Hệ thống thanh toán điện tử của ngân hàng là một hệ thống lớn gồm các phân hệ như:
+ Thanh toán giữa ngân hàng với khách hàng qua điện thoại, tại các điểm bán lẻ, các kiôt, giao dịch cá nhân tại các gia đình, giao dịch tại trụ sở khách hàng, giao dịch qua Internet, chuyển tiền điện tử, thẻ tín dụng…
+ Thanh toán giữa ngân hàng với các đại lý thanh toán (nhà hàng, siêu thị…)
+ Thanh toán nội bộ một hệ thống ngân hàng khác
+ Thanh toán giữa hệ thống ngân hàng này với hệ thống ngân hàng khác
Trang 71.2 Các công đoạn của một giao dịch thương mại điện tử
Gồm có 6 công đoạn sau:
1 Khách hàng, từ một máy tính tại một nơi nào đó, điền những thông tin thanh toán và điạ chỉ liên hệ vào đơn đặt hàng (Order Form) của Website bán hàng (còn gọi là Website thương mại điện tử) Doanh nghiệp nhận được yêu cầu mua hàng hoá hay dịch vụ của khách hàng và phản hồi xác nhận tóm tắt lại những thông tin cần thiết như: mặt hàng đã chọn, địa chỉ giao nhận và số phiếu đặt hàng
2 Khách hàng kiểm tra lại các thông tin và kích (click) vào nút (button) "đặt hàng", từ bàn phím hay chuột (mouse) của máy tính, để gởi thông tin trả về cho doanh nghiệp
3 Doanh nghiệp nhận và lưu trữ thông tin đặt hàng đồng thời chuyển tiếp thông tin thanh toán (số thẻ tín dụng, ngày đáo hạn, chủ thẻ .) đã được mã hoá đến máy chủ (Server, thiết bị xử lý dữ liệu) của Trung tâm cung cấp dịch vụ xử lý thẻ trên mạng Internet Với quá trình mã hóa các thông tin thanh toán của khách hàng được bảo mật an toàn nhằm chống gian lận trong các giao dịch (chẳng hạn doanh nghiệp sẽ không biết được thông tin về thẻ tín dụng của khách hàng)
4 Khi Trung tâm xử lý thẻ tín dụng nhận được thông tin thanh toán, sẽ giải mã thông tin và xử lý giao dịch đằng sau bức tường lửa (FireWall) và tách rời mạng Internet (off the Internet), nhằm mục đích bảo mật tuyệt đối cho các giao dịch thương mại, định dạng lại giao dịch và chuyển tiếp thông tin thanh toán đến ngân hàng của doanh nghiệp (Acquirer) theo một đường dây thuê bao riêng (một đường truyền số liệu riêng biệt)
5 Ngân hàng của doanh nghiệp gởi thông điệp điện tử yêu cầu thanh toán (authorization request) đến ngân hàng hoặc công ty cung cấp thẻ tín dụng của khách hàng (Issuer) Và tổ chức tài chính này sẽ phản hồi là đồng ý hoặc từ chối thanh toán đến trung tâm xử lý thẻ tín dụng trên mạng Internet
6 Trung tâm xử lý thẻ tín dụng trên Internet sẽ tiếp tục chuyển tiếp những thông tin phản hồi trên đến doanh nghiệp, và tùy theo đó doanh nghiệp thông báo cho khách hàng được rõ là đơn đặt hàng sẽ được thực hiện hay không
Trang 8Toàn bộ thời gian thực hiện một giao dịch qua mạng từ bước 1 đến bước 6 được
xử lý trong khoảng 15 - 20 giây
Sơ đồ 1.1 Hình thức thanh toán qua internet
1.3 Vai trò của thương mại điện tử
Thương mại điện tử là hình thái hoạt đông thương mại bằng phương pháp
điện tử, là việc trao đổi thông tin thương mại thông qua các phương tiện công nghệ điện tử mà nói chung là không cần phải in ra giấy trong bất cứ công đoạn nào của quá trình giao dịch Với đặc trưng đó, thương mại điện tử mang đến các lợi ích sau:
+ Giúp cho các Doanh nghiệp nắm được thông tin phong phú về thị trường và đối tác
+ Giúp giảm chi phí sản xuất
+ Giúp giảm chi phí bán hàng và tiếp thị
+ Qua Internet giúp người tiêu dùng và các doanh nghiệp giảm đáng kể thời gian và chí phí giao dịch
+ Tạo điều kiện cho việc thiết lập và củng cố mối quan hệ giữa các thành phần tham gia vào quá trình thương mại
+ Tạo điều kiện sớm tiếp cận nền kinh tế số hoá
Trang 91.4 Lợi ích và giới hạn của thương mại điện tử
1.4.1 Lợi ích
EC đã đem lại nguồn tiềm năng về lợi nhuận to lớn cho con người EC đã tạo cơ hội để tập hợp được hàng trăm người, hàng ngàn người trên thế giới bất kể quốc hay dân tộc nào Những lợi nhuận này đang bắt đầu trở thành hiện thực và
sẽ gia tăng khi EC lan rộng
a Đối với khách hàng
+ Sự tiện lợi:
Người tiêu dùng có thể mua hàng vào bất cứ lúc nào mình thích từ chính bàn làm việc của minh, đơn đặt hàng nhanh chóng được thực hiện chỉ thông qua vài thao tác đơn giản và họ được nhận hàng tại nhà
+ Mua được đúng thứ mình cần với chi phí hợp lý nhất:
Người tiêu dùng có cơ hội chọn lựa những mặt hàng tốt nhất với giá rẻ nhất, có thể nhanh chóng tìm được những loại hàng hoá dịch vụ cần thiết với một danh sách so sánh về giá cả, phương thức giao nhận cũng như chế độ hậu mãi Nếu ưa thích và đã mua một mặt hàng thuộc chủng loại nào đó, người tiêu dùng
có thể rễ ràng tìm ra những mặt hàng tương tự hoặc những mặt hàng mới nhất
+ Người tiêu dùng được hưởng chế độ hậu mãi tốt hơn:
Thay vì phải gọi điện liên tục đến bộ phận hỗ trợ kỹ thuật hay phải chờ đợi, người tiêu dùng có thể chủ động và nhanh chóng tìm kiếm các thông tin cần thiết qua website của nhà cung cấp Chắc chắn sự hỗ trợ sẽ nhanh hơn vì thương mại điện tử giúp cho các nhà cung cấp hỗ trợ khách hàng với hiệu suất cao hơn
Họ cũng có thể phản ánh trực tiếp những nhu cầu, những ý kiến của mình tới các nhà lãnh đạo, tới các bộ phận chuyên trách
b Đối với các doanh nghiệp và nhà cung cấp:
+ Hoạt động kinh doanh 24/7 trên toàn cầu, đáp ứng nhanh với những nhu cầu khác nhau:
Tham gia thương mại điện tử là một phương thức tốt để tiếp cận thị trường toàn cầu Với TMĐT, nhà cung cấp có thể phục vụ khách hàng thuộc mọi múi giờ khác nhau từ mọi nơi trên thế giới, việc kinh doanh không bị ngưng trệ vì
Trang 10những ngày tết hay ngày nghỉ… Khách hàng có thể chủ động tìm đến mà không làm phiền tới bạn, không ảnh hưởng tới thời gian biểu của nhà cung cấp
Trong môi trường kinh tế cạnh tranh thì chất lượng dịch vụ và khả năng đáp ứng nhanh chóng với những yêu cầu riêng biệt của thị trường là bắt buộc đối với doanh nghiệp Mức sống ngày càng cao thì người ta coi trọng sự tiện lợi hơn là giá cả và TMĐT có lợi thể vợt trội về điều này
+ Giảm chi phí sản xuất tiếp thị và bán hàng
Trước hết là giảm chi phí văn phòng - quản lý Khi tham gia thương mại điện tử, công ty có thể chào bán mặt hàng dịch vụ của mình mà không cần thêm nhân công Các văn phòng - cửa hàng điện tử chi phí hoạt động thấp hơn nhiều
so với văn phòng truyền thống, phục vụ được đồng thời một lượng khách hàng lớn hơn hàng ngàn lần, hoạt động 24/7, không gian không giới hạn Thông tin về mặt hàng luôn đảm bảo được cập nhật mới nhất khi khách hàng có nhu cầu tìm hiểu Lúc đó, các chi phí in ấn tờ rơi quảng cáo không còn cần thiết nữa
+ Cải thiện hệ thống liên lạc, giúp thiết lập và củng cố quan hệ đối tác
Công ty có thể liên hệ với nhân viên, khách hàng, đối tác thông qua website Mọi thay đổi đều có hiệu lực ngay khi bạn gửi cho họ trên website, và bất kỳ ai cũng xem được những thông tin cập nhật mà không phải liên lạc trực tiếp với công ty Người tham gia TMĐT có thể liên hệ trực tiếp và liên tục với nhau, không giới hạn thời gian và khoảng cách địa lý với chi phí thấp, nhờ vậy cả
sự hợp tác và quản lý đều được tiến hành nhanh chóng liên tục Các bạn hàng mới, các cơ hội kinh doanh mới được phát hiện nhanh chóng trên bình diện toàn quốc, quốc tế và có nhiều cơ hội để lựa chọn hơn Việc tìm kiếm đối tác cũng trở lên thuận tiện hơn, thông qua việc nắm vững và đầy đủ thông tin về nhau, việc tiến hành đàm phán trở nên nhanh gọn và tin cậy
+ Dịch vụ hậu mãi tốt hơn và thuận tiện hơn
Với TMĐT, các công ty có thể cung cấp dịch vụ sau bán hàng tốt hơn mà không còn bị làm phiền nhiều Thay vì thuê thêm nhân viên hỗ trợ kỹ thuật, thay
Trang 11khách hàng của bạn có thể chủ động tìm những câu trả lời qua hệ thống FAQ hay Support của công ty Bạn chỉ việc đưa ra những tình huống có thể, tạo câu hỏi và câu trả lời, và tất nhiên dễ dàng cập nhật thường xuyên
+ Đem lại sự cạnh tranh bình đẳng
Vì thương mại điện tử được tiến hành trên mạng nên không bị ảnh hưởng bởi khoảng cách địa lý, do đó công ty dù nhỏ hay lớn thì điều đó cũng không ảnh hưởng gì, các công ty vẫn được nhiều người biết đến nhờ sự tính toàn cầu của mạng Khách hàng cũng có nhiều sự lựa chọn nhờ mạng máy tính cung cấp cho
họ Thương mại điện tử đem lại sự hiện diện trên toàn cầu cho nhà cung cấp và
sự lựa chọn toàn cầu cho khách hàng
+ Những hạn chế không phải về mặt kỹ thuật:
Chi phí để phát triển EC trong công ty có thể rất cao và có thể gây ra lỗi
do việc thiếu hiểu biết, dẫn đến việc trì hoãn công việc Hơn nữa, để chứng minh cho hệ thống, phải chi ra được những lợi nhuận không thể nhìn thấy được và rất khó xác định được số lượng (chẳng hạn như việc phát triển dịch vụ phục vụ khách hàng và giá trị của sự quảng cáo)
Bảo mật và sự riêng tư là rất quan trọng trong mô hình doanh nghiệp đến người tiêu dùng (B2C), đặc biệt là các vấn đề bảo mật là rất nghiêm trọng Giới
Trang 12hạn của việc bảo vệ sự riêng tư đang phát triển Đối với khách hàng, những vấn
đề này rất quan trọng Ngành công nghiệp EC có một nhiệm vụ lâu dài và khó khăn trong việc thuyết phục khách hàng rằng những giao dịch và thông tin cá nhân trên mạng rất bảo mật
Trong vài trường hợp, khách hàng không tin tưởng vào người bán hàng
mà mình không quen biết và không biết mặt và những giao dịch không có giấy
tờ, tiền điện tử Bởi vì những điều đó, việc thuyết phục khách hàng chuyển từ giao dịch vật lý thông thường sang giao dịch điện tử là rất khó khăn
Một vài khách hàng thì thích tiếp xúc với mặt hàng mình sẽ mua, chẳng hạn như quần áo để mà họ biết được chính xác mặt hàng họ mua sẽ như thế nào
Có những vấn đề thuộc về luật pháp vẫn còn chưa được giải quyết, và trong nền tài chính của chính phủ, mối quan hệ và trình độ không đủ để cải tiến được tính phức tạp của EC
Cũng như là một ngành học, EC vẫn còn tiến triển và thay đổi một cách nhanh chóng Nhiều người đang tìm kiếm một EC ổn định trước khi họ tham gia vào EC EC không có đủ các dịch vụ hỗ trợ Ở một số nơi, không có đủ điều kiện then chốt của EC để đạt được sự thành công Trong hầu hết các ứng dụng, không
có đủ người bán và người mua để thu lợi nhuận từ các tiến trình EC
Một vài điều đáng lo ngại là EC phát huy được công dụng của việc giao tiếp trực tiếp, có thể có một thất bại trong mối quan hệ của họ
1.5 Một số vấn đề cần lưu ý khi tham gia thương mại điện tử
1.5.1 Bảo mật
Khi tham gia vào thương mại điện tử nghĩa là hệ thống được kết nối vào mạng toàn cầu Do đó, hệ thống có thể bị tấn công bất cứ khi nào nếu không có một cơ chế bảo mật chặt chẽ
Ngoài ra, thông tin được truyền trên internet đi qua nhiều chặng nên khó kiểm soát và dễ bị tấn công từ bên ngoài Vì vậy, thông tin truyền đi cần phải
được mã hoá bởi bên gửi và bên nhận phải có cách giả mã để nhận thông tin
Trang 131.5.2 Vấn đề ẩn danh
Tính ẩn danh là một đặc tính rất quan trọng của phương thức thanh toán bằng tiền điện tử, đây là ưu điểm của phương thức này so với những phương thức khác Tính ẩn danh là quá trình thanh toán của người trả tiền phải được ẩn danh
và không để lại dấu vết, nghĩa là ngân hàng sẽ không nói được: tiền giao dịch là của ai Trong hệ thống tiền điện tử, để giải quyết vấn đề trên người ta đã sử dụng
kỹ thuật “chữ ký số mù” Chữ ký số mù là một dạng đặc biệt của chữ ký điện tử,
nó đòi hỏi người ký thực hiện ký vào một thông điệp mà không biết nội dung của
nó Thêm vào đó, người ký sau này có thể nhìn thấy cặp chữ ký/thông điệp, nhưng không thể biết được là mình đã ký thông điệp đó khi nào và ở đâu (mặc dù anh ta có thể kiểm tra được chữ ký đó là đúng đắn)
Chữ ký số mù đảm bảo ngân hàng không thể có được bất cứ mối liên hệ nào giữa đồng tiền điện tử và chủ sở hữu của nó
Tùy theo từng hệ thống tiền điện tử cụ thể mà sẽ áp dụng những sơ đồ chữ ký số
mù khác nhau Mỗi lược đồ có những ưu và nhược điểm khác nhau
1.5.3 Vấn đề tiêu xài hai lần
Với tính chất dạng số hoá, nên với Tiền điện tử, dễ dàng tạo bản sao từ bản gốc Chúng ta không thể phân biệt được đây là bản sao từ một bản gốc nào đấy, chính vì thế việc giả mạo là không thể phát hiện được Một hệ thống tiền điện tử tầm thường sẽ cho phép tạo bản sao của tiền điện tử và kẻ gian có thể tiêu xài bản sao này bình thường mà không bị phát hiện Để giải quyết vấn đề này, tuỳ theo từng loại hệ thống tiền điện tử mà có giải pháp khác nhau
+ Đối với hệ thống Tiền điện tử trực tuyến:
Hệ thống yêu cầu người bán hàng liên lạc tới ngân hàng với mỗi lần bán Ngân hàng lưu giữ thông tin tất cả những đồng tiền điện tử đã tiêu xài trước đấy
và có thể dễ dàng cho người bán hàng biết đồng tiền nào còn khả năng tiêu xài được Nếu ngân hàng báo rằng đồng tiền nào đó đã thực sự được tiêu xài rồi, thì người bán hàng lập tức từ chối bán hàng Điều này giống như cách mà những nhà bán hàng hiện tại kiểm tra thẻ tín dụng tại những điểm bán hàng
Trang 14+ Đối với hệ thống Tiền điện tử ngoại tuyến:
Việc phát hiện trường hợp “tiêu xài hai lần” sẽ được thực hiện bằng hai cách khác nhau
Cách thứ nhất là tạo thẻ thông minh đặc biệt (special smart card) chứa con chip chống trộm cắp Trong những hệ thống khác, chip này còn được gọi là
“người theo dõi” Chip theo dõi sẽ lưu một lượng nhỏ dữ liệu của tất cả những tiền điện tử đã được tiêu xài qua smart card Nếu người sở hữu smart card đó cố gắng sao chép tiền điện tử này và tiêu xài nó lần hai, thì chip theo dõi (được gắn vào smart card) sẽ phát hiện được hành động này, và không cho phép giao dịch
“tiêu xài” Bởi vì chip theo dõi dùng để chống sự gian dối, người sở hữu smart card này không thể xoá được dữ liệu trừ khi họ phá huỷ smart card
Cách thứ hai là dựa vào cấu trúc của tiền điện tử và những giao thức mật
mã để có thể truy vết tìm ra kẻ gian lận (tiêu xài hai lần) Nếu như người sử dụng biết rằng họ sẽ bị bắt khi cố tính gian lận, về lý thuyết thì tỷ lệ hành động gian lận sẽ bị giảm đi Điều thuận lợi của phương pháp là chúng không đòi hỏi những con chip đặc biệt Hệ thống có thể được phát triển trên chương trình phần mềm (software) và có thể chạy trên máy tính cá nhân thông thường hay
+ Những account không sử dụng đến phải được xóa bỏ
+ Phải tắt (disable) account Guest
Trang 15+ Account IUSR_MACHINE phải được tắt nếu không dùng đến
+ Nếu các ứng dụng cần quyền anonymous access, các bạn phải tạo tài khoản anonymous này với quyền thấp nhất có thể Những account anonymous không được phép có quyền write vào thư mục web và không được truy cập vào những ứng dụng bằng command line Các account chạy ứng dụng ASP.NET phải được thiết lập với quyền thấp nhất (Chỉ áp dụng khi bạn không dùng account ASPNET - account mặc định chạy ứng dụng ASP.NET với quyền mặc định thấp nhất)
+ Phải có chính sách về account và password phức tạp thiết lập trên sever + Phải remove group Everyone trên policy "Access this computer from the network"
+ Các tài khoản quản trị phải được đảm bảo tính bảo mật, không chia sẽ thông tin các tài khoản này
+ Null sessions (anonymous logons) phải được tắt
+ Đăng nhập từ xa phải được đảm bảo an toàn cho tài khoản
Administrators
1.6.2 Loại trừ những đoạn mã gây nguy hiểm
Duy trì tính bảo mật cho máy chủ dịch vụ Web có nghĩa là phải chắc chắn rằng tất cả các scripts và các ứng dụng Web được triển khai ở trên máy chủ dịch
vụ Web không có Trojan, backdoors hay một số đoạn mã độc khác Ở trên Internet có rất nhiều các scripts cho các nhà phát triển Web sử dụng Tuy nhiên, những scripts được tải từ một số nguồn bên ngoài thường không đảm bảo bảo (có thể bị chèn các đoạn mã độc để lấy dữ liệu của người dùng…) bằng được phát triển trong các nhà sản xuất phần mềm Nếu bắt buộc phải sử dụng những chương trình mã nguồn mở, các nhà phát triển và quản trị phải kiểm tra chất lượng để tìm những lời gọi hệ thống không đúng chỗ, các đoạn mã phụ và những hàm không cần thiết
1.6.3 Hoạt động ghi lại
Ghi lại, kiểm tra, hay giám sát các hoạt động trên máy chủ dịch vụ Web trở thành một trong những hoạt động quan trọng khi mà dung luợng dữ liệu được
Trang 16lưu trữ trên máy chủ ngày càng tăng Giám sát các hoạt động của nguời sử dụng Web bao gồm:
+ Cố gắng thực thi các Scripts
+ Cố gắng viết vào các tệp
+ Cố gắng truy nhập vào các tệp bên ngoài thư mục gốc của Web
Đôi khi phải ghi lại tất cả các thao tác của tất cả người sử dụng (việc này thường
sẽ tốn nhiều dung lượng lưu trữ của máy chủ dịch vụ Web) Sử dụng hệ thống phát hiện xâm nhập (IDS – Instrusion Detection System), đây là một công cụ dùng để giám sát tất cả hoạt động không bình thường và những hành động xấu tới hệ thống thông qua các quy tắc mà hệ thống hay người quản trị đặt ra Một hệ thống phát hiện xâm nhập có thể kiểm tra các gói tin, tìm ra các dấu hiệu tấn công để thông báo cho người quản trị hoặc có những hành động như là từ chối, hoặc loại bỏ những gói tin đó
1.6.4 Sao lưu dữ liệu
Việc sao lưu dữ liệu là rất cần thiết để đề phòng khi dữ liệu ở trên máy chủ dịch vụ Web bị phá hủy, bị lỗi hay bị xóa bỏ Trên thực tế trong một số trường hợp là không cần thiết nhưng có một kế hoạch cho điều xấu nhất luôn là phương án tốt trong việc bảo mật Phải có một chính sách sao lưu dữ liệu hợp lý, phù hợp với hệ thống hiện tại và chính sách phục hồi dữ liệu đáp ứng tính sẵn
dùng khi hệ thống gặp lỗi, sự cố
1.7 Những lỗ hổng nghiêm trọng và cách khắc phục
Là những lỗi của ứng dụng Web và máy chủ dịch vụ Web Tuy nhiên những lỗi này thường không thể khai thác hoặc nếu khai thác được thì cũng không ảnh hưởng nhiều đến các ứng dụng Website Tuy nhiên nó vẫn được gọi
và được liệt kê vào trong những lỗ hổng bảo mật Web bởi vì ít hay nhiều nó vẫn
có thể bị lợi dụng hoặc ảnh hưởng đến ứng dụng và người dùng Web
1.7.1 Mật khẩu đưa vào tự động hoàn thành
Mô tả: Khi một tài khoản mới(gồm tên – username và mật khẩu –
Trang 17form được hiển thị, tên và mật khẩu đầy đủ sẽ được tự động được đưa vào để đăng nhập Một kẻ tấn công với việc truy nhập trực tiếp vào máy tính có thể lấy được mật khẩu không mã hóa ở bộ nhớ đệm của trang Web
Ảnh hưởng: Thông tin nhạy cảm(tên và mật khẩu)có thể bị lộ
Cách khắc phục: Mật khẩu đưa vào tự động hoàn thành có thể tắt ở trong
các ứng dụng nhạy cảm Để tắt chế độ tự động hoàn thành có thể sử dụng mã giống như:
<INPUT TYPE="password" AUTOCOMPLETE="off">
1.7.2 Đường liên kết bị hỏng - Broken Link
Mô tả: Một ”đường liên kết hỏng” sẽ đưa ta tới một một số tài liệu, hình
ảnh hoặc trang Web mà trên thực tế nó hiện ra kết quả là “trang web không tìm thấy – the page cannot be found” Đôi khi trang này đã được liên kết với một trang khác nhưng không thể tiếp cận được
Ảnh hưởng: Trong trường hợp này, không có kẻ tấn công nào có thể lợi
dụng được lỗi này nhưng nó làm cho ảnh hưởng tới vấn đề điều hướng trang Web Các đường link hỏng đôi khi sẽ làm cho người dùng tưởng trang Web không tồn tại hoặc bị lỗi không truy nhập được
Cách khác phục: Xóa những đường liên kết hỏng hoặc làm cho các tài liệu, hình ảnh, trang Web mà liên kết đó chỉ đến có thể truy nhập được
1.7.3 Địa chỉ thư điện tử(email) được tìm thấy ở trên trang Web
Mô tả: Một hay nhiều địa chỉ email được tìm thấy trên trang Web
Spam-boots là một chương trình rà soát các địa chỉ email ở trên một số website mà chúng được chỉ định hoặc đi qua Chương trình Spamboot tìm kiếm các chuỗi ký
tự giống như: tênbạn@tên_miền_của_bạn.com và chúng sẽ ghi lại tên các địa chỉ email mà chúng tìm thấy được
Ảnh hưởng: Có thể là nạn nhân của các chương trình spam Hoặc đôi khi
có thể là mục tiêu của phishing
Cách khắc phục:
Sử dụng javascript để che giấu địa chỉ mail
Sử dụng form liên hệ thay cho ghi trực tiếp thông tin địa chỉ email
Trang 181.7.4 Tiêm câu lệnh SQL (SQL Injection)
Mô tả: Những năm về trước khi Hầu hết các ứng dụng web động ngày
nay, đều được xây dựng dựa trên một cơ sở dữ liệu – Database Phần lớn các cơ
sở dữ liệu được sử dụng hiện nay là MSSQL , MYSQL, OCRACLE Tuy nhiên
do chi phí để sử dụng OCRACLE quá cao nên hầu hết các web thường sử dụng MSSQL và MYSQL Trong đó, phần lớn các script phía server hoạt động phần lớn dựa và các câu truy vấn (query) tới database SQL – Injection chính là một cách tấn công của hacker bằng cách inject(tiêm) các truy vấn SQL vào các đầu vào – Input trước khi dữ liệu được chuyển cho ứng dụng web xử lý Bằng cách tiêm trực tiếp các truy vấn vào trong đầu vào dữ liệu hoặc trên thanh địa chỉ URL, hacker có thể đăng nhập (login) vào hệ thống mà không cần Username và Password hoặc có thể truy vấn để lấy được tài khoản admin, hay thao tác trực tiếp với cơ sở dữ liệu của trang Web
Ảnh hưởng: Nếu khai thác thành công lỗi SQL – Injection của site mắc lỗi, kẻ tấn công sẽ chiếm được quyền admin của trang Web, do đó, kẻ tấn công hoàn toàn có thể thay đổi database, chỉnh sửa nội dung, xóa toàn bộ database
Như vậy hacker là đã làm chủ hoàn toàn website
Cách khắc phục: Kiểm tra dữ liệu của người dùng đưa vào trước khi xử
lý.Kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request.QueryString;Request.Form;Request.Cookies; and
Request.ServerVariables)
Sử dụng cấu trúc lập trình 3 lớp tách biệt hẳn lớp xử lý dữ liệu riêng
Thay đổi "Startup and run SQL Server" dùng mức low privilege user trong tab SQL Server Security
Xóa bỏ các stored procedure mà bạn không dùng như:
master Xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask
Dùng công nghệ Rewrite URL(Tuy nhiên chỉ hạn chế được việc chèn trực tiếp dữ liệu trên URL)
Trang 191.8 Apache Web Server
Hệ thống mà em xây dựng là một trình ứng dụng được viết trên giao diện Web, người sử dụng có thể truy xuất các trang Web của hệ thống từ các máy con
Do vậy yêu cầu của hệ thống là phải có một máy chủ chạy phần mềm web server (như IIS, Apache, Personal Web Server…)
Thứ hai, do đây là trang Web có tương tác cơ sở dữ liệu nên cần phải có một hệ quản trị cơ sở dữ liệu (như SQL Server, ocracle, MySQL, MS Access,…) Tuy
có nhiều cách lựa chọn về môi trường làm việc nhưng trong thời gian làm đề tài tốt nghiệp, em chọn môi trường và công cụ làm việc cho ứng dụng gồm:
+ Web Server: Apache Web server
+ Cơ sở dữ liệu: MySQL
+ Ngôn ngữ chạy: PHP
Ngoài ra, còn sử dụng một số chức năng của một số phần mềm như Dreamweaver, Photoshop,… để chuẩn bị cho việc xây dựng và phát triển đồ án
và tạo giao diện
Trên thị trường tồn tại nhiều phần mềm webserver khác nhau như: Xitami, Appseves, IIS , mỗi loại đều có ưu nhược điểm riêng Điển hình là sản phẩm thương mại IIS do Microsoft phát triển, nó rất thích hợp với các trình dịch của Microsoft hơn còn với các trình biên dịch khác thì nó ít hỗ trợ, và lại khả năng chống và chịu lỗi của IIS không cao Còn Appserv Web Server do công ty Apache phát triển, được cung cấp miễn phí, hỗ trợ nhiều ngôn ngữ, chạy trên nhiều môi trường như Microsoft, Linux, Unix Apache là Web server phổ biến nhất hiện nay, chiếm khoảng gần 60% thị trường máy chủ Web trên thế giới chứng tỏ sự mạnh mẽ và đáng tin cậy của nó Trên Web server sẽ chứa những site mà các máy con có thể truy xuất đến các site này
Có thể download file msi,( nếu trên máy có sẵn Windows Intaller), hoặc file exe (dung lượng lớn hơn) Cài đặt theo các thông số mặc định của Apache
Trang 201.9 Tìm hiểu về PHP
Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ Web Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke, Post Nuke, vBulletin…)
PHP là ngôn ngữ có cú pháp gần giống Perl nhưng tốc độ dịch của nó được các chuyên gia đánh giá là nhanh hơn ASP 5 lần, chạy trên nhiều hệ điều hành như Unix, Window, Linux nó hỗ trợ kết nối các hệ cơ sở dữ liệu lớn như MySQL, ngoài ra nó còn được Apache hỗ trợ như là một module cơ bản
1.9.1 PHP là gì ?
PHP (Personal Home Page hay PHP Hypertext Preprocessor) được giới thiệu năm 1994 bởi R.Lerdoft, như một bộ sưu tập của một ngôn ngữ chưa chặt chẽ dựa vào Perl và các công cụ của trang chủ Vì quá trình xử lý dựa trên máy chủ nên các trang Web được viết bằng PHP sẽ dễ nhìn hơn ở bất cứ hệ điều hành nào Nói một cách ngắn gọn: PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho trình duyệt Xu hướng sử dụng PHP trong việc thiết kế Web đang ngày càng phát triển trong giai đọan hiện nay và trong tương lai
Tới năm 1998, việc công bố phiên bản 3 thì PHP mới chính thức phát triển theo hướng tách riêng của mình Giống như C và Perl, lúc này nó đã là một ngôn ngữ lập trình có cấu trúc và tính năng đa dạng, chính vì thế đã khuyến khích các nhà thiết kế Web sử dụng PHP Nó có thể cung cấp một lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, DBM, Hyperwave, Informix, Ocracle, nó cũng có thể làm việc với các hình ảnh, các file dữ liệu, FTP, XML, và host của các kỹ thuật ứng dụng khác
Mã PHP được đặt trong một kiểu tag đặc biệt cho phép ta có thể vào họăc
ra khỏi chế độ PHP, cú pháp của PHP cơ bản cũng giống như một số ngôn ngữ lập trình khác, đặc biệt là C và Perl
Trang 21PHP được nhận dạng dưới 4 dạng phiên bản:
a.Ví dụ:
<?php //bắt đầu php echo”Hello World”;
Trang 22c Xâu:
Có 2 cách để xác đinh 1 xâu: Đặt giữa 2 dấu nháy kép(“”) hoặc giữa 2 dấu nháy đơn (‘’).Chú ý là các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn
d Mảng: Mảng thực chất là gồm 2 bảng: Bảng chỉ số và bảng liên kết
● Mảng 1 chiều: Có thể dùng hàm list(), array() để liệt kê các giá trị của từng phần tử trong mảng để tạo mảng Có thể thêm các giá trị vào mảng để tạo thành 1 mảng > Dùng giống trong C
Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(),usort(), and uksort() để sắp xếp mảng Tùy thuộc vào việc sắp xếp theo kiểu gì
● Mảng nhiều chiều: Tương tự như C, có thể dùng như VD sau:
$foo = "0"; // $foo là ký tự ASCII 48
$foo++; // $foo là xâu "1" (ASCII 49)
$foo += 1; // $foo là số nguyên (2)
$foo = $foo + 1.3; // $foo là số thực (3.3)
$foo = 5 + "10 Little Piggies"; // $foo là số nguyên (15)
1.9.3 Biến - giá trị
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một
chữ cái hoặc dấu gạch dưới
* Một số biến đã được tạo sẵn
Trang 23ARGC: Số các tham số được truyền, dùng chung với ARGV
PHP_SELF: Tên của đọan mã Script đang thực hiện Nếu PHP đang được chạy
từ dòng lệnh thì tham số này không có giá trị
HTTP_COOKIE_VARS: Một mảng các giá trị được truyền tới Script hiện tại bằng HTTP COOKIE Chỉ có tác dụng nếu “track_vars” trong cấu hình được đặt hoặc chỉ dẫn <?php_track_vars?>
HTTP_GET_VARS: Một mảng các giá trị được truyền tới Script hiện tại bằng HTTP GET Chỉ có tác dụng nếu “track_vars” trong cấu hình được đặt hoặc chỉ dẫn <?php_track_vars?>
HTTP_POST_VARS: Một mảng các giá trị được truyền tới Script hiện tại bằng HTTP POST Chỉ có tác dụng nếu “track_vars” trong cấu hình được đặt hoặc chỉ
dẫn <?php_track_vars?>
1.9.4 Hằng số (constants_cố định)
PHP định nghĩa sẵn một vài hàm số:
_FILE_: Tên của script file đang được thực hiện
_LINE_: Số dòng của mã script đang được thực hiện trong script file hiện tại _PHP_VERSION_: Version của PHP
_PHP_OPERATE: Tên hệ điều hành mà PHP đang chạy
TRUE, FALSE : Giá trị Đúng , Sai
E_ERROR: Báo hiệu có lỗi
E_PARSE: Báo lỗi sai khi biên dịch
E_NOTICE: Một vài sự kiện có thể là lỗi hoặc không
Có thể định nghĩa một hằng số bằng hàm define ( )
VD:
<?php define("CONSTANT", "Hello world.");
echo CONSTANT; // in ra "Hello world."
?>
Trang 241.9.5 Biểu Thức
Biểu thức là một phần quan trọng trong PHP Phần lớn mọi thứ bạn viết đều được coi như là một biểu thức Điều này có nghĩa là mọi thứ đều có một giá trị Một dạng cơ bản nhất của biểu thức là bao gồm các biến và hằng số
PHP hổ trợ 3 kiều giá trị cơ bản nhất: Số nguyên, số thực, và xâu Ngoài
ra còn có mảng và đối tượng Mỗi kiểu giá trị này đều có thẻ gán cho các biến hay làm giá trị trả ra khỏi các hàm Bạn có thể thao tác với các biến trong PHP giống như trong C
Trang 25d Switch
Switch (tên biến) { case trường hợp 1: break;
case trường hợp 2: break;
case trường hợp 3: break;
default : }
● Những điều cần nhớ:
Các cấu trúc điều khiển chi phối tốc độ của chương trình, cho phép chia nhỏ các thành phần khác nhau của một ngôn ngữ lập trình, phụ thuộc vào đầu vào và có thể dễ dàng thực hiện các thao tác
Có hai loại cấu trúc điều khiển trong PHP: Ngôn ngữ điều kiện và điều khiển theo một vòng khép kín
Hai loại cấu trúc trên chỉ có các lệnh không dùng dấu ngoặc, tuy nhiên các nhà lập trình thường sử dụng chúng để tạo mã dễ hiểu hơn Các lệnh này thường được ứng dụng với cùng một lý do
Break: Có thể được dùng để kết thúc lệnh hiện thời Nó cũng có thể được sử dụng để xoá bỏ For Loops và While Loops, Exit, xoá bỏ toàn bộ nhiệm vụ của ngôn ngữ lập trình Break còn được dùng ở bất kỳ đâu trong ngôn ngữ lập trình
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
Trang 26b Tham biến:
function add_some_extra(&$string) {
$string = 'and something extra.';
d Giá trị trả lại của hàm:
Có thể là bất kỳ giá trị nào, Tuy vậy, không thể trả lại nhiều giá trị riêng lẻ nhưng có thể trả lại một mảng các giá trị
VD:
function small_numbers() {
Trang 27Để trả lại một tham trỏ, cần có dấu & ở cả khai báo của hàm cũng như ở giá trị trả lại
VD:
function &returns_reference() {
echo"Infoo()<br>n";
} function bar ( $arg = '' ) {
echo "In bar(); argument was '$arg'.<br>n";
Các toán tử logic: and or xor ! && ||
Toán tử thao tác với bit: & | ^ ~ << >>
Trang 28Toán tử so sánh: ==, !=,<,>,<=, >=
Toán tử điều khiển lỗi: @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức
sẽ bị bỏ qua và lưu trong $php_errormsg
var $items; // Items in our shopping cart // Add $num articles of $artnr to the cart function add_item ($artnr, $num)
{
$this->items[$artnr] += $num;
} //Take $num articles of $artnr out of the cart
function remove_item ($artnr, $num) {
Trang 29$this->items[$artnr] -= $num;
return true;
} else{
return false;
} }
class Named_Cart extends Cart
Trang 301.9.10 Tham chiếu
Tham chiếu trong PHP có nghĩa là lấy cùng một giá trị bằng nhiều tên biến khác nhau Khác với con trỏ C, tham chiếu là một bảng các bí danh Chú ý: Trong PHP, tên biến và nội dung của biến là khác nhau Vì vậy, cùng 1 nội dung
có thể có nhiều tên khác nhau.Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nội dung
VD:
$a = & $b; > $a, $b trỏ tới cùng một giá tri
Tham chiếu truyền giá trị bằng tham chiếu Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu
Giá trị trả lại của một hàm bằng tham chiếu rất tiện khi bạn muốn sử dụng hàm
để tìm 1 giá trị trong 1 phạm vi nào đó
Khi bạn muốn loại bỏ mối liên kết giữa tên biến và giá trị của biến, sử dụng hàm unset()
Trang 31PHP không bị giới hạn với mã HTML được trả lại cho trình duyệt Vì vậy,
có thể dùng PHP để tạo và thao tác với các file ảnh có định dạng khác nhau, bao gồm: gif, png, jpg, bmp, xpm PHP có thể đưa các file ảnh trực tiếp đến các trình duyệt Bạn sẽ cần biên dịch PHP với thư viện GD bao gồm các hàm thao tác với ảnh GD và PHP có thể sẽ cần có thêm 1 số thư viện khác, tuỳ thuộc vào định dạng của file ảnh cần dùng
VD: Tạo ảnh GIF với PHP
<?php Header("Content-type: image/gif");
Trang 32thời điểm, cung cấp khả năng truy cập dữ liệu nhanh, bảo đảm cho người sử dụng được cấp quyền truy cập dữ liệu của hệ thống Do vậy, MySQL là đa ngừơi dùng,
đa luồng Nó sử dụng các câu lệnh truy vấn SQL(ngôn ngữ truy vấn có cấu trúc),
là một chuẩn ngôn ngữ truy vấn cơ sở dữ liệu hiện nay trên Web MySQL được chính thức sử dụng rộng rãi năm 1996 nhưng nó đã hình thành từ năm 1979 MySQL cómã nguồn mở và sử dụng miễn phí, nhưng với những mục đích thương mại khác thì nó cũng có các bản quyền thương mại nếu được yêu cầu cung cấp bản quyền Một khó khăn cho người lập trình không chuyên là khi sử dụng MySQL, việc tạo cơ sở dữ liệu hoàn toàn bằng lệnh, do đó đòi hỏi người sử dụng phải có tính cẩn thận và sắp xếp quy trình làm việc hợp lý
MySQL có thể quản lý tới hàng Terabyte dữ liệu, hàng triệu bản ghi, chạy trên nhiều môi trường khác nhau, có giao diện tương đối dễ sử dụng, có thể truy vấn
dữ liệu thông qua câu lệnh SQL
MySQL thường được sử dụng chung với PHP trong những trang Web cần sử dụng đến cơ sở dữ liệu
1.10.1 Các kiểu dữ liệu trong MySQL
a Kiểu ký tự
● Kiểu Char
Char( length ) //kiểu này có độ dài tối đa 255 ký tự
Varchar(length) //tự động thay đổi để trở thành kiều char
● Kiểu Text
Tinytext //độ dài tối đa 255 ký tự, kiểu text độ dài tối đa 65.535 ký tự
Mediumtext //có độ dài tối đa là 16.777.215 ký tự
Longtext //độ dài tối đa 4.294.967.295 ký tự
● Kiểu Enum: Có dạng Enum(‘value1’,’value2’,’…’) [default ‘value’]
b Kiểu số
● Kiểu int/integer: Có dạng Int(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned cột này có thể lưu trữ giá trị từ 0 đến 4.294.967.295, nếu
Trang 33● Kiểu Tinyint: Có dạng Tinyint(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned có thể lưu trữ giá trị từ 0 đến 255, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng –128 đến 127
● Kiểu Mediumint: Có dạng : mediumint(display size) [unsigned] [zerofill] Nếu sử dụng unsigned có thể lưu trữ giá trị từ –8.388.608 đến 8.388.607, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng 0 đến 1677215
● Kiểu bigint: Có dạng bigint(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned có thể lưu trữ giá trị từ –9.223.672.036.854.775.808 đến 9.223.671.036.854.775.807, nếu sử dụng signed cột này có thể lưu trữ
giá trị trong khoảng 0 đến 18.446.744.037.709
c Kiểu Date và Time
● Kiểu Date: Có dạng date lưu trữ giá trị có dạng YYYY-MM-DD có giá trị nằm trong khoảng 10000-01-01 đến 9999-12-31
● Kiểu datetime: Có dạng datetime[null]| not null][default]
● Kiểu timestamp: Có dạng timestamp(size), có khuôn dạng như sau:
Trang 341.10.4 Truy nhập MySQL từ PHP
Mysql_connect(host, user, password) để mở kết nối tới MySQL server với kết quả là giá trị trả về của hàm (giả sử là biến $db) Sau đó, dùng hàm mysql_select_db(database_name,link_id) để chọn cở sở dữ liệu muốn kết nối
Để thực hiện một câu lệnh truy vấn, dùng hàm mysql_query(query, link_id) Giá trị trả lại của hàm là kết quả của câu truy vấn Nếu bỏ qua link_id thì kết nối cuối cùng tới MySQL server sẽ được thực hiện
mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object()
mysql_fetch_row($result): Trả về một mảng các dữ liệu lấy từ 1 dòng trong cơ sở
dữ liệu Nếu đã ở cuối cơ sở dữ liệu, giá trị trả về là false Bạn phải dùng chỉ số của các trường trong cơ sở dữ liệu nếu muốn lấy dữ liệu