基于ASP.NET圖書電子商務網站建設技術探析
近年網站數量呈爆炸式增長,據統(tǒng)計,當前網站數量已經突破11500個,商務網站已達1200多家,網上商店林立,如人們熟悉的阿里巴巴,8848等勢頭喜人,新浪、網易等綜合網站也紛紛建立了電子商城。
圖書以其藏書豐富、便于檢索等特點,非常適合進行網上銷售。下面以基于ASP.NET圖書電子商務網站建設過程為例,闡述圖書電子商務網站建設中的系統(tǒng)需求分析及圖書電子商務網站系統(tǒng)功能技術實現。
一、系統(tǒng)的定位及需求分析
1.網站定位
面向圖書市場的基于ASP.NET圖書電子商務網站。
2.網站功能模塊
(1)會員管理模塊:該模塊收集網站瀏覽潛在客戶的基本信息,建立的數據庫將紀錄瀏覽者的基本信息以便于網站統(tǒng)計分析,同時,注冊會員還可以享受網站提供的個性化服務。
(2)圖書在線銷售模塊:該模塊是在網絡上建立一個虛擬的圖書購物商場,避免挑選書籍的煩瑣過程,使整個買書過程變得輕松、快捷、方便。
(3)圖書新聞發(fā)布模塊,網站要有對某些書籍促銷信息、新書籍發(fā)布和業(yè)界動態(tài)信息進行管理和發(fā)布的功能。它主要包括:新聞信息發(fā)布、新聞信息錄入、新聞信息修改刪除、新聞信息查詢等功能。
(4)網站后臺管理模塊:網站數據管理功能主要用于完成遠程數據庫服務器維護功能,基于ASP.NET圖書電子商務網站建設技術中,包括業(yè)務數據的分類與信息的添加、刪除、修改等功能,以及對網站操作員的管理等。
二、系統(tǒng)的實現手段及標準
1.后臺用戶管理實現手段
網站的所有頻道及其子欄目采用統(tǒng)一的用戶管理系統(tǒng),通過不同的權限機制,管理不同的版塊。增加網站的相對安全性及后期維護的分工明確性,例如:圖書新聞發(fā)布用戶組用戶僅有管理、添加圖書新聞的權限,沒有管理其他欄目的權限。
2.綜合技術實現手段
(1)本系統(tǒng)采用三層開發(fā)模式。第一層:客戶機是用戶與整個系統(tǒng)的接口。客戶的應用程序精簡到一個通用的瀏覽器軟件。瀏覽器將HTML代碼轉化成圖文并茂的網頁;第二層:Web服務器將啟動相應的進程來響應一些請求,并動態(tài)生成一串HTML代碼,其中嵌入處理的結果,返回給客戶機的瀏覽器;第三層:數據庫服務器的任務類似于C/S模式,負責協調不同的Web 服務器發(fā)出的SQL請求,管理數據庫。
(2)枝術實現標準。①數據表索引優(yōu)化,不同欄目數據分表存儲,提升速度、提高容量;②網站導航要易于使用,確保新訪問者能夠通過網站導航簡單方便并且快速的找到他所要的信息。③采用微軟公司推薦的更為先進的開發(fā)思想來開發(fā),前后臺代碼文件分開寫,對于ASP.NET 程序, 則可以分寫為.aspx和.cs兩個文件。
三、系統(tǒng)的功能實現
電子商務網站,很大一部分工作是數據訪問,也就是對各種不同數據源進行數據操作。本系統(tǒng)采用Microsoft SQLServer 2000 作為該系統(tǒng)的后臺數據庫管理系統(tǒng)。ASP.NET通過ADO.NET進行數據訪問, 并有功能強大的服務端控件對數據發(fā)布(顯示) 提供較完善的支持。
與數據訪問相關的類被封裝在System.Data、System.Data.SqlClient、System.Data.OLEDB等命名空間內。
1.數據庫連接
本系統(tǒng)采用對數據庫配置進行統(tǒng)一管理的方法,將數據庫連接字符串信息寫于Web.config配置文件中,方便系統(tǒng)移植和管理。
2.公共類代碼實現
為了減少重復代碼書寫率,提高編程效率,本系統(tǒng)將公共代碼寫入一個公共類command.cs文件里面,command.cs類文件包括:getconn()、getdataset()、getspace()、getmd5()、getlogin()、getexec()、get_count()等自定義方法。
如:
- publicboolgetexec(stringstr)
- //執(zhí)行T-SQL操作語句并返回信息
- {
- SqlConnectionconn=this.getconn();
- SqlCommanddc=newSqlCommand(str,conn);
- boolok=false;
- conn.Open();
- if(dc.ExecuteNonQuery()〉0)
- {ok=true;}
- returnok;
- }
3.服務器端的數據庫處理
Web Server與SQL后臺數據庫服務器的通訊通過類之間的調用來與數據庫進行數據通訊。如update 數據:
- protected void ok_Click(object sender,
- EventArgs e)
- {
- sqlaccess access = new sqlaccess();
- string str ="update news set news_title='"
- + access.getspace(str1) + "',news_message='"
- + access.getspace(str3)+ "',s_title='"+str+ "'
- where id="+id;
- if(access.getexec(str))
- Response.Write("〈 Script Language=JavaScript 〉
- alert('修改成功??!');window.open('xx.aspx');
- 〈 /Script 〉");
- Else
- Response.Write("〈 Script Language=JavaScript 〉
- alert('修改時出錯,請重試??!'); 〈 /Script 〉");
- }
4.提高網站安全性,防止SQL注入
所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到WEB表單的輸入區(qū)域或頁面請求的查詢字符串,欺騙服務器執(zhí)行惡意SQL命令。在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態(tài)SQL命令,或作為存儲過程的輸入參數,這類表單特別容易受到SQL注入式攻擊。
本系統(tǒng)的防范措施:在利用表單輸入的內容構造SQL命令之前,把所有輸入內容過濾,可以有效的防止ASP.NET應用被注入式攻擊,過濾內容可以包含以下幾種:
(1)符號過濾。如:單引號、百分號等等。
(2)對用戶輸入內容中的所有連接數據庫字符過濾,防止攻擊者構造出類似“select * from userlist where login=’name’—and password=’’“之類的查詢,其后半部分已被注釋掉,不再有效,攻擊者只要知道一個合法用戶名,根本不需要知道密碼,就能獲得訪問權限。
(3)加密用戶密碼,然后再將它與數據庫中保存的數據比較,用戶輸入的數據不再對數據庫有任何特殊的意義,從而也在一定程序上防止了攻擊者SQL注入,以及通過獲取Cookie、Session等方法獲取用戶密碼。
本文通過分層的開發(fā)模式在網站需求獲取、代碼分析,以及提高網站安全性等方面做了深入分析,利用微軟的.NET 技術及先進的開發(fā)思想,基于ASP.NET圖書電子商務網站建設技術開發(fā)出了一套運行穩(wěn)定、性能良好、開發(fā)效率較高、開發(fā)成本低廉的圖書電子商務網站系統(tǒng)。
【編輯推薦】