版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ch13進階網際網路資料庫應用
13-1網際網路資料庫簡介13-1-1網際網路的需求文字在網頁上的文字,有極高的機率是需要“無限制”的長度,也就是網頁所提供的輸入格TextBox,若不限制輸入長度,就可能會造成使用者輸入大量的資料。數字
在網頁的輸入格中,並沒有所謂的文字和數字上的差異,很難要求使用者在輸入時是輸入數字,必需要等待使用者輸入完成後再去檢查。而在資料庫中屬於數字類的,除了整數,還有精準數、貨幣等格式,但網頁只讓使用者輸入純文字,這時我們必需在網頁上作註明和檢查,否則是無法存入資料庫的。
圖片
目前在網頁上,除了文字,圖片也是廣泛出現的內容,圖片目前最容易使用的是*.bmp、*.jpg、*.gif,但bmp圖檔的容量太大了,在網際網路這種到處要求容量的地方,自然被淘汰出局,而最常用的就是jpg和gif檔。
影像
影像和圖形比起來,影像的容量比圖片太大多了,而影像和圖形有幾項差別:時間長度壓縮品質
圖形和影像另有一個差異,就是當我們開啟瀏覽器看到文字和圖片時,其實它已經下載到我們本地的電腦之中了,若沒有下載是無法看到完整的網頁的,我們只要到電腦的瀏覽器暫存區去找,都可以找到該網頁和圖形檔哦,而且絕對是完整的。
聲音在網路上的聲音,最常用到的就是*.wav檔了,wav檔是保留原始類比訊號的格式,也就是將類比轉換成數位格式時的最初型態之一,也因如此,wav檔的容量都很大。聲音檔和影像檔一樣,也是可以只用資料串流的方式來傳輸,讓使用者無法存檔,但可以收聽,常見的用途就是網路收音機,不但可以傳輸檔案讓使用者收聽,還可即時從錄音室將聲音直接壓送出去,使用者就可以聽到live現場即時的聲音了。13-1-2網際網路的應用程式在網路上,我們使用瀏覽器所看到的結果都是以html語法顯現,大部份的網頁也是採用html檔(副檔名為htm或html)來製作,但是html網頁是靜態的,也就是看一次和看十次、看一百次,內容都不會變,我們無法給予參數讓他改變內容,也無法讓它連結資料庫,來存取資料庫的內容來顯現在網頁上。
瀏覽器伺服器網頁送出要求回應結果網頁若我們改成網路應用程式CGI來作,CGI是一個可以執行的應用程式,我們在送出要求時,可以給予參數,它就會回應不同的結果,若十個人同時送出要求且給予不同參數,十個人會分別得到不同的結果。
伺服器網頁CGI瀏覽器送出要求執行顯示結果回應結果執行script213CGI可以存取伺服器的部份資源,最常見到的就是存取資料庫,而且目前CGI也都會有特定搭配的資料庫,例如PERL、C/C++、ASP、PHP、JSP等,每一個CGI會找合適的資料庫來存取,像MySQL、SQLServer、Oracle、DB2等,都很合適開發網際網路的資料庫應用程式。如果CGI要存取資料庫,必需在伺服器端執行才能有權限去存取伺服器內的資料庫,在存取資料庫後,將結果再回傳給瀏覽器的網頁上:伺服器網頁CGI瀏覽器送出要求執行顯示結果回應結果213資料庫存取5傳回資料6另一種CGI存取資料庫的方式,可以經由第一台伺服器執行CGI程式,再連接到另一台伺服器的資料庫端存取,此種方式有個好處,就是Web伺服器本身在防火牆外,本身沒有資料,只有程式,而DataBase伺服器在防火牆內,可以有良好的保護,而我們只要設定DataBase伺服器只能允許Web伺服器可以存取資料庫,那駭客想要取得資料庫,也要先破解Web伺服器,再破解防火牆,需要多兩個以上的步驟,增加更多的安全性:
網頁瀏覽器Web伺服器DataBase伺服器CGI送出要求執行顯示結果回應結果213資料庫存取5傳回資料6防火牆13-2網際網路資料的儲存方式13-2-1Html檔
網際網路上的網頁,目前都是以Html語法為主,用瀏覽器讀取網路上的網頁時,一個網頁就是一個檔案,而一個網頁所產生的結果也只會有一個,不可能會有數個結果。
純Html檔
一個網頁能夠加入的檔案不多,目前大多為圖檔,圖檔本身可以放在網頁之中,所以一個網頁可以看到許多的圖檔,甚至是Flash檔、Director檔或Java檔等:
瀏覽器網頁伺服器圖檔圖檔圖檔含外掛之Html檔
基本上來說,網頁若是Html檔,它是不能執行任何程式的,它只能取出既有的、固定的資料項目,所以每次看到的結果都相同。但是網頁的特性是可以一層層去連結許多檔案,若是連結到的檔案,是具有執行功能的檔案,那就可以啟動程式。
伺服器CGIPHP/ASP瀏覽器Flash網頁CGI或動態執行檔CGI本身和Html網頁一樣,一個檔可以呈現一個結果,但CGI本身是個程式,依照每個程式屬性不同,會有不同的執行方式,而CGI可以直接存取資料庫的內容,但外面的瀏覽器或使用者,是無法開啟CGI內容,也無法看到程式碼。
伺服器瀏覽器CGI網頁資料庫資料庫資料庫13-3網際網路作業平台與程式語言
13-3-1作業平台的配合UNIX
UNIX大多是用在大型的主機上,很適合大量的使用者同時連線使用,而網際網路正是多人同時使用的環境,因此很適合用在網際網路上。
UNIX本身為文字介面,但新版的UNIX已經有使用者圖形介面了,在效能上,比Windows系統快很多,而且穩定性高,出錯率也低,所以也是目前最常應用在網際網路的作業平台。
Windows98
Windows98是個人電腦的作業系統,本身沒有伺服器工能,但是可以加裝PersonalWebServer,就可以當作Web伺服器使用,不過Windows98問題較多,具容易當機,安全性又不佳,因此只適合用在個人網站或當測試平台,不適合作為大型的網際網路伺服器。
WindowsNT
WindowsNT系列(NT/2000/XP/2003),本身都具有網際網路伺服器的各項功能,僅能裝在X86處理器的電腦上,它的效能比UNIX差很多,穩定性也比UNIX差,不過X86處理器的電腦價格較為便宜,因此小型的網站很適合用WindowsNT來架站。
WindowsNT可以當作個人電腦來使用,也可以當作伺服器,而Windows支援的軟體很多,遠遠超過UNIX許多,而目前WindowsNT也是最多使用的作業系統,因此維護容易,使用簡單,價格便宜。
Linux
Linux是個開放原始碼的作業系統,任何人都可修改原始碼來製作自己的作業平台,而他和UNIX很像,指令、用法、功能等,都和UNIX幾乎如出一轍。Linux是免費的作業系統,但是安全性和功能性都不差,而且效能也高,適何用在各種主機上,甚至可以在PC上安裝,可以說是大眾化的作業系統,因此Linux雖然發展較晚,但是佔有率卻是成長的最快。13-3-2應用程式的配合CC語言在撰寫後,必需經過編譯才能執行,並且要設定它的屬性為可執行,C的起源很早,應用也很廣,但是連接資料庫的能力較為不足,在低階的應用比較廣泛,而網際網路的應用都較需要更多親和力的功能和資料庫的功能。但是因為它需要編譯才能執行,所以對於原始碼的保護較高,也因為編譯後的執行檔可獨立執行,所以效能高,若是使用在安全性要求高的方面,C語言可能是最佳選擇之一。
Perl
erl有分為需要編譯和不需要編譯兩種,大多數的使用者都是用不需要編譯的,Perl最早是用來處理字串的,在早期支援網際網路的資料庫較少時,Perl可以處理許多純文字資料,而網頁又是文字居多,因此Perl被大量的應用在CGI上。
PHPPHP原名是PersoanlhomePage,主要是處理網頁的內容,它可以執行的功能相當多,而且主要是針對網頁的功能而設計,並且可以結合Html語法,可以說是兼具網頁的功能和程式的優點。PHP可以支援許多資料庫,包含MySQL、mSQL、Postgre、dBase、Infomix、InterBase、Oracle、Sybase,更可藉由ODBC來連結其他相關的資料庫。PHP功能相當多,還支援XML和PDF,以PHP3的功能,就幾乎可以應付目前大部份網頁的需求。ASP
ASP原名是ActiveServerPages,它的用法和PHP類似,最早是在Windows平台上執行,現在UNIX/Linux也可以執行,它的語法和VisualBasic較像,使用的人口相當多,主要原因是會VisualBasic語法,ASP就很容易學會了。JSP
JSP原名是JavaServerPages,它的用法也和PHP類似,不過它的語法是和Java較像,主要是學會Java後,就同時可以會部份的JSP語法,目前仍在初期成長的階段。VisualBasic
VisualBasic主要是在Windows上開發,而執行也需在Windows平台上,它的功能主要是在開發Windows應用程式,所以也必需經由編譯後才能執行。Delphi
Delphi也必需在Windows上開發,需在Windows平台上執行,目前Delphi可以支援Linux,可以同時開發Windows和Linux應用程式,也必需經由編譯後才能執行。SQLServer資料庫MicrosoftInternetInformationServerWWWGopherFTPHttpodbc.dllODBCSQLServerDriverMicrosoftAccessDriverOtherDriverAccess資料庫Other資料庫13-4網際網路資料庫設計
13-4-1網際網路資料庫的架構
13-4-2網際網路資料庫的存取方式直接產生動態網頁當CGI執行時,會存取資料庫的內容來產生網頁,然後將網頁送到瀏覽器之中,若使用者是一個人以上,每一個人要同一個CGI去抓資料庫的內容不同,所得到的網頁結果也不同,所以一個CGI程式可以因為資料庫內容和使用者要求的參數不同而有不同的結果:
伺服器瀏覽器CGI網頁資料庫間接產生動態網頁另外一種方式是利用程式將資料庫的內容另存成Html檔,而瀏覽器只能去取得Html網頁的內容,而不會去存取資料庫,但所得的Html是依不同的內容所產生,所以Html檔將會非常非常多:
伺服器瀏覽器Html網頁資料庫Html網頁Html網頁Html網頁動態網頁優缺點比較直接產生動態網頁-優點:進入門檻低撰寫容易支援度高檔案、頁面少,維護容易網頁格式統一
直接產生動態網頁-缺點:
顯示速度慢耗用資源高需編譯後才能執行網頁內含程式碼,易遭破壞
間接產生動態網頁-優點:
顯示快網頁內不含程式顯示不佔系統太多資源間接產生動態網頁-缺點:
製作困難需要常常更新Html檔內容檔案過多,管理困難
13-4-3跨平台資料庫的存取若我們使用資料庫和程式是分屬兩個不同的作業平台,我們所採用的CGI程式就必需要支援可以連結到不同平台的作業系統,一般來說,大多數的CGI一定都是在網路平台上執行,因此都可以存取其他不同伺服器的資料。
UNIX伺服器瀏覽器CGI網頁NT伺服器資料庫若是CGI不支援該資料庫的種類,也可以直接經由共同的通訊協定,例如ODBC、JDBC等,利用這種共同的管道去存取資料庫,因此CGI只能要支援ODBC,也就幾乎支援大部份的資料庫了:
UNIX伺服器瀏覽器CGI網頁NT伺服器資料庫ODBC另外一種方式是CGI本身區分成兩個部份,兩個平台使用兩種不同的CGI程式,其中一個是應付瀏覽器來產生網頁,並且呼叫另一個CGI程式去存取資料庫,因為CGI本身大多可以相互溝通,這樣有較彈性的空間:
UNIX伺服器瀏覽器CGI網頁NT伺服器CGI程式資料庫13-4-4連接兩個以上的資料庫如果我們一次連接兩個以上的資料庫,可能要看看這個CGI的能力,因為CGI可用的資源都不多,但一跑起來耗的資源卻很大,主要是使用者可能會高達十人、百人、千人或萬人,所以一個人耗用一點就足以讓程式將資源吃光光。
伺服器CGI網頁資料庫A資料庫C資料庫B如果要改善這個問題,我們可以將資料庫放在專門負責資料庫的DB伺服器,每個資料庫都有專屬的設備來存取資料,這樣一個資料庫負載過重時,不會去影響到其他的資料庫,也可以依資料庫的負載不同,給予不同的硬體設備:13-4-5減輕資料庫的負擔
如果我們在架設網站的資料庫時,沒有足夠的硬體設備,但又需要大量的資料處理,這時就需要一些小小的技巧來改善資料庫的效能,因為山不轉路轉,如果沒錢買設備,就要花較多時間去改變設計。例如我們有一個表格PSHOW,本身會儲存1997/09/01年以後的資料,每一天的資料約20筆,聽起來好像資料量不大,但試想一下,一年365天,一年就要7300筆,十年就要7萬筆。因此我們可以利用日期將資料打散,將資料分別儲存在不同的表格之中,就能改善這個問題。13-5資料庫的使用者管理13-5-1誰是資料庫管理者單一管理者
在一個網路架構中,資料庫可能有一個或數個以上,無論是否分散在哪個區域,都由一個管理者來管理,通常管理者只有一個時,會有一個好處,那就是這個人可以了解整個資料庫的架構,資料庫放在哪,他都可以很清楚的管理,一旦要移動或升級,他可以全面的掌控:網路伺服器CGI網頁資料庫A資料庫C資料庫B資料庫管理程式多來源管理者
這個管理者有分層級,有最高管理者和一般管理者。最高管理者就如同單一管理者一樣,他可以掌控全局,所有的資料庫架構和內容他都可以改變和設定。其他的管理者只是分別負責每個資料庫的某個部份,不會了解和他無關的資料庫,因此其他的管理者可以分擔最高管理者的負荷,當有問題發生時,會先找一般管理者,當一般管理者無法解決時,才去找最高管理者。伺服器CGI網頁資料庫A資料庫C資料庫B資料庫管理程式13-5-2網站使用者的資料庫管理
CGI網頁管理CGI網頁管理,是利用CGI撰寫成網頁,然後使用者可以用瀏覽器打開網址,就能登入使用,這種好處是使用者可以在任何地方使用,即是國外,只要有瀏覽器就能使用,對於長期不在自己座位或常出差的使用者是很方便的作法。應用程式管理
若我們使用應用程式管理資料庫,就和一般應用程式撰寫沒什麼太大差異,也是需要使用程式開發工具來設計,只是要能夠連接上網路上的資料庫即可。13-6資料庫的安全性
13-6-1防止駭客破壞資料庫何謂駭客?
在程式設計領域中,一個出於誤樂愛好且熱衷於設計新的方法的人一個沒有經過許可,卻入侵、存有惡意或為了顯示自己實力去破壞他人系統的人安全的系統中,不經授權、企圖取得系統控制權的人13-6-2防止病毒破壞資料庫
預防外界人士入侵系統的方法:經常更新密碼對員工實施教育訓練對員工實施演習安裝保全系統分拆各項重要處理功能,讓許多人參與,可以互相監察和制衡將重要的數據資料加密製定工作規範製定緊急應變程序定期檢查各種項目保留所有事項記錄和用戶活動記錄。定時執行安全回報病毒可分為三類:檔案型病毒系統或啟動記錄病毒巨集病毒
13-6-3阻斷式攻擊
當使用者使用chunkedencoding這種編碼方式,來發送無效的request給伺服器,即使在64-bit的架構下,同樣能讓入侵者執行在系統上所提供的任何程式。
阻斷式攻擊並不需要太多技術,也不需要入侵伺服器,而我們要防止這種方式,最好就是建立防火牆,當有一個IP來源在短時間內快速的要求伺服器時,就能給予維護人員警告,再將此IP來源封鎖,就能讓大部份的攻擊失效。
13-6-4常見應用程式的漏洞
如何撰寫安全的CGI程式程式必須明確指定環境變數、初始目錄及路徑程式必須強制使用者輸入的字串,防止不法字元輸入程式必須防止變數被修改的可能性程式必須避免以純文字的方式,在網路上傳送帳號及密碼盡量使用系統原有的Library,盡可能不使用不明來源且沒有原始碼的Library安全漏洞掃描器定期檢測伺服器的安全,其動作如下:掃描服務:掃描系統提供的Ports和服務,例如Http、FTP、Telnet等掃描後門程序:檢查系統是否有安裝PCAnywhere、NetBus、BackOffice等遠端搖控軟體掃描密碼:查看系統目前提供的密碼及權限是否正常掃描應用程序:確定每個可以執行的程序都沒有安全上的問題測試阻斷服務:測試伺服器受到阻斷服務(DenialOfService)時的因應狀態產生分析報表:定期測試,定期查看變動的情形掃描資料庫的內容:檢查資料庫之中是否有不合法的資料
如何評估安全漏洞可以掃描並且發現安全漏洞,並修補資料庫漏洞掃描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淘宝客服试用期转正工作总结
- 活着的读书心得
- 23.1.1 锐角的三角函数 同步练习
- 23.2 相似图形 同步练习
- 江苏省扬州市扬大附中2024-2025学年高一上学期联考英语试卷(含解析)
- 河北省秦皇岛市卢龙县2024-2025学年八年级上学期期中地理试题
- 天津地区高考语文五年高考真题汇编-名篇名句默写
- 语文教学论教案 第二章 语文教材
- 个人车位买卖协议书范本
- 联合体投标协议书模板2024年
- 广东省行政执法资格考试题库
- 校园设施规划设计案例分析
- 体育学数字化教学设计方案
- 后勤食堂食材供应商考察评价流程
- 成人气管切开拔管中国专家共识解读
- 建筑施工安全员培训
- 普通高中生招生计划书
- 汉语拼音课件趣味拼音
- 《物理气相沉积》课件
- 肺出血病人的护理查房课件
- 双拥工作策划方案
评论
0/150
提交评论