計(jì)算機(jī)系統(tǒng)安全課程論文參考模板_第1頁(yè)
計(jì)算機(jī)系統(tǒng)安全課程論文參考模板_第2頁(yè)
計(jì)算機(jī)系統(tǒng)安全課程論文參考模板_第3頁(yè)
計(jì)算機(jī)系統(tǒng)安全課程論文參考模板_第4頁(yè)
計(jì)算機(jī)系統(tǒng)安全課程論文參考模板_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算機(jī)系統(tǒng)安全課程論文 學(xué)號(hào):24 姓名:田艷玲 班級(jí):計(jì)科1101 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)院:信息科學(xué)與工程0 / 16摘 要隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的發(fā)展,越來(lái)越多的不安全因素威脅著我們的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),其中SQL注入式其中的一種,它利用SQL語(yǔ)言的漏洞,對(duì)數(shù)據(jù)庫(kù)、計(jì)算機(jī)系統(tǒng)等進(jìn)行攻擊。這種攻擊可以跳過(guò)防火墻的檢測(cè),不易察覺(jué)。一旦攻擊成功,它可以進(jìn)行信息的盜取、網(wǎng)絡(luò)和系統(tǒng)的癱瘓,被視為整個(gè)網(wǎng)絡(luò)的威脅。防止SQL注入有很多方式,本實(shí)驗(yàn)通過(guò)編程式代碼防止其發(fā)生。對(duì)SQL注入和注入防范分別進(jìn)行演示,使更好的理解SQL注入與防范的過(guò)程。更多的了解有關(guān)于SQL注入的知識(shí)。關(guān)鍵字:SQL注入;數(shù)據(jù)庫(kù)

2、;防范目 錄一、緒論11.1研究的背景和意義11.1.1研究的背景11.1.2研究的意義11.2需求分析11.2.1 SQL語(yǔ)言11.2.2 Servlet21.2.3 JSP21.2.4 Tomcat3二、SQL注入選題的設(shè)計(jì)目標(biāo)與原理32.1 SQL選題目標(biāo)32.2 SQL注入選題設(shè)計(jì)原理3三、SQL選題設(shè)計(jì)方案43.1 常見(jiàn)相關(guān)技術(shù)比較43.1.1 編程防范43.1.2 數(shù)據(jù)庫(kù)配置防范43.1.3 操作系統(tǒng)配置防范43.2 我所采用的技術(shù)5四、SQL注入選題實(shí)驗(yàn)環(huán)境搭建54.1 配置java JDK54.2 使用Eclipse54.3 安裝Oracle數(shù)據(jù)庫(kù)5五、SQL注入選題方案實(shí)施5

3、5.1方案設(shè)計(jì)結(jié)構(gòu)示意圖55.2 方案實(shí)施步驟6六、總結(jié)116.1 SQL注入選題設(shè)計(jì)總結(jié)116.2 對(duì)本門(mén)課程的認(rèn)識(shí)及總結(jié)11SQL注入在信息系統(tǒng)開(kāi)發(fā)中的系統(tǒng)安全防范設(shè)計(jì)一、緒論1.1研究的背景和意義1.1.1研究的背景隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的發(fā)展,信息系統(tǒng)的體系結(jié)構(gòu)也逐漸從C/S(客戶/服務(wù)器)模式發(fā)展成B/S(瀏覽器/服務(wù)器)模式,B/S模式的信息系統(tǒng)具有更好的可維護(hù)性,系統(tǒng)的安裝、運(yùn)行、升級(jí)都十分方便,但是,正是這種方便,同時(shí)也給了攻擊提供了方便SQL注入攻擊就是其中的一種。1.1.2研究的意義SQL是結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)的縮寫(xiě)

4、,是標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操作語(yǔ)言,當(dāng)今的信息系統(tǒng)也離不開(kāi)數(shù)據(jù)庫(kù),因此也離不開(kāi)SQL。SQL注入攻擊(SQL Injection Attack)是攻擊者應(yīng)用http(Hypertext Transfer Protocol,超文本傳輸協(xié)議)的請(qǐng)求B/S模式的信息系統(tǒng)發(fā)送惡意的SQL腳本,探測(cè)出信息系統(tǒng)開(kāi)發(fā)者編程過(guò)程中的漏洞,然后利用這些漏洞,對(duì)信息系統(tǒng)的數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行直接檢索或修改。許多信息系統(tǒng)由于開(kāi)發(fā)者的疏忽,沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行嚴(yán)格判斷,使應(yīng)用程序存在漏洞,造成安全隱患,攻擊者就是利用這些漏洞,達(dá)到攻擊的目的。1.2需求分析為演示SQL所產(chǎn)生的效果,我將做一個(gè)系統(tǒng),使用SQL注入進(jìn)行登陸,完

5、成效果,下面是制作系統(tǒng)所需要用到的核心技術(shù)。1.2.1 SQL語(yǔ)言結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL(發(fā)音:/s kju l/ "S-Q-L"),結(jié)構(gòu)化查詢語(yǔ)言是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。結(jié)構(gòu)化查詢語(yǔ)言是高級(jí)的非過(guò)程化編程語(yǔ)言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語(yǔ)言語(yǔ)句可以嵌套

6、,這使它具有極大的靈活性和強(qiáng)大的功能。1.2.2 Servletservlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Java applet的環(huán)境中創(chuàng)造的,Java applet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)。服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問(wèn)數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(Common Gateway Interface))應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語(yǔ)言實(shí)現(xiàn)。在通信量大的服務(wù)器上,Javaservlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于C

7、GI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開(kāi)銷將明顯降低。1.2.3 JSPJSP是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁(yè)java程序片段可以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送E-mail等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,這樣大大降低了對(duì)客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問(wèn)JS

8、P網(wǎng)頁(yè)。JSP全名為Java Server Pages,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),他實(shí)現(xiàn)了Html語(yǔ)法中的java擴(kuò)張(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。通常JSP頁(yè)面很少進(jìn)行數(shù)據(jù)處理,只是用來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的靜態(tài)化頁(yè)面,只是用來(lái)提取數(shù)據(jù),不會(huì)進(jìn)行業(yè)務(wù)處理。JS

9、P技術(shù)使用Java編程語(yǔ)言編寫(xiě)類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁(yè)面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來(lái)。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)

10、基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。1.2.4 TomcatTomcat 服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat

11、時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為8.0.0-RC1 (alpha) Released。Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)

12、用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。2、 SQL注入選題的設(shè)計(jì)目標(biāo)與原理2.1 SQL選題目標(biāo)進(jìn)行SQL注入選題,更深一步的了解SQL注入的危害和形式。2.2 SQL注入選題設(shè)計(jì)原理信息系統(tǒng)基本上都是靠數(shù)據(jù)庫(kù)來(lái)支撐的,盡管現(xiàn)在用的數(shù)據(jù)管理系統(tǒng)種類較多,但是他們基本上都支持SQL,雖然針對(duì)各種數(shù)據(jù)庫(kù)管理系統(tǒng)的SQL語(yǔ)法不盡相同,但基本上是大同小異,易于區(qū)分和掌握,并且對(duì)于絕大多數(shù)防火墻來(lái)說(shuō),這種攻擊時(shí)“合法”的,因此SQL注入攻擊易于實(shí)施,具有廣泛性。一旦攻擊成功,信息系統(tǒng)所用數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以任由攻擊者查看和修改,攻擊者可以直

13、接在數(shù)據(jù)庫(kù)中添加具有管理員權(quán)限的用戶,從何獲得系統(tǒng)管理員權(quán)限,其危害是極其嚴(yán)重的;如果信息系統(tǒng)中存放有秘密數(shù)據(jù),則造成秘密泄露;如果攻擊者修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),要么造成系統(tǒng)的癱瘓,要么使系統(tǒng)中的數(shù)據(jù)以假亂真,誤導(dǎo)系統(tǒng)的使用者做出錯(cuò)誤的決策,從而造成更大的危險(xiǎn)。當(dāng)今的數(shù)據(jù)庫(kù)管理系統(tǒng)都有一些工具和組件,可以直接與操作系統(tǒng)及網(wǎng)絡(luò)聯(lián)接。這就意味著攻擊者通過(guò)SQL注入攻擊一個(gè)信息系統(tǒng)后,其危害就不只局限于存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),攻擊者還可以設(shè)法獲得對(duì)DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))所在的主機(jī)的交互式訪問(wèn),使其危害從數(shù)據(jù)庫(kù)向操作系統(tǒng)、甚至整個(gè)網(wǎng)絡(luò)蔓延。因此,我們不僅應(yīng)當(dāng)將SQL注入攻擊看作是一個(gè)對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)上數(shù)據(jù)

14、的威脅,而且應(yīng)當(dāng)看作是對(duì)整個(gè)網(wǎng)絡(luò)的威脅。3、 SQL選題設(shè)計(jì)方案3.1 常見(jiàn)相關(guān)技術(shù)比較防止SQL注入的方法可以從系統(tǒng)編程防范、安全配置數(shù)據(jù)庫(kù)管理系統(tǒng)、安全配置操作系統(tǒng)等方面進(jìn)行:3.1.1 編程防范編程防范就是在編寫(xiě)的程序中加強(qiáng)安全防范,堵塞漏洞。編程防范總的原則就是少特權(quán)、多檢驗(yàn)。少特權(quán):不要給數(shù)據(jù)庫(kù)連接或數(shù)據(jù)庫(kù)用戶太多的權(quán)限,應(yīng)為不同的類型的操作建立和使用不同的賬戶,其權(quán)限與其操作相匹配。多檢驗(yàn):對(duì)用戶輸入從多方面檢驗(yàn)其合法性,如檢驗(yàn)數(shù)據(jù)庫(kù)中是否包含單引號(hào)、雙引號(hào)、分號(hào)、逗號(hào)、冒號(hào)、連接號(hào)等特殊字符或SQL語(yǔ)句、函數(shù)、數(shù)據(jù)類型等保留字符串,數(shù)據(jù)類型是否與預(yù)期類型匹配,數(shù)據(jù)長(zhǎng)度是否超長(zhǎng)等,

15、一旦發(fā)現(xiàn)與預(yù)期不符的情況,應(yīng)該放棄執(zhí)行。3.1.2 數(shù)據(jù)庫(kù)配置防范數(shù)據(jù)庫(kù)管理系統(tǒng)往往提供一些安全方面的配置項(xiàng),如果將這些配置項(xiàng)配置準(zhǔn)確,可以大幅度提高防范攻擊能力:使用安全的賬號(hào)和密碼策略、使用Windows身份驗(yàn)證模式和管理擴(kuò)展存儲(chǔ)過(guò)程。3.1.3 操作系統(tǒng)配置防范操作系統(tǒng)一般都提供一些安全功能,如果配置好這些安全功能,就能對(duì)攻擊起到一定的防范作用:選擇安全的文件系統(tǒng)、對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行權(quán)限設(shè)置與加密和對(duì)應(yīng)用系統(tǒng)文件進(jìn)行權(quán)限設(shè)置與加密。3.2 我所采用的技術(shù)我將演示在編程防范上所進(jìn)行的防范:在編程代碼中對(duì)SQL注入進(jìn)行防范。只是對(duì)SQL注入的過(guò)程進(jìn)行演示。4、 SQL注入選題實(shí)驗(yàn)環(huán)境搭建4.1

16、 配置java JDK4.2 使用Eclipse下載eclipse軟件,配置好tomcat服務(wù)器。4.3 安裝Oracle數(shù)據(jù)庫(kù)并創(chuàng)建用戶,表格,添加數(shù)據(jù)。五、SQL注入選題方案實(shí)施5.1方案設(shè)計(jì)結(jié)構(gòu)示意圖 編寫(xiě)shopping04項(xiàng)目SQL注入防范演示SQL注入演示java.sql.PreparedStatementjava.sql.StatementSQL注入防范成功SQL注入成功java.sql.PreparedStatement是Java類庫(kù)中的一個(gè)類,可以有效的防止SQL注入,而java.sql.Statement無(wú)法防止SQL注入,尤其是代碼中編寫(xiě)代碼時(shí)SQL語(yǔ)句使用拼接式。5.2

17、 方案實(shí)施步驟1、編寫(xiě)shopping04項(xiàng)目,作為SQL注入防范的演示。項(xiàng)目架構(gòu)如圖: 防止SQL注入的登陸代碼:public Boolean checkUser(String loginid, String password) Connection conn=null;PreparedStatement stmt=null;ResultSet rs=null;try conn=JDBCUtil.getConnection();stmt= conn.prepareStatement("select * from customer where loginid=?"

18、);stmt.setString(1, loginid);rs=stmt.executeQuery();while(rs.next()if(password.equals(rs.getString("password")return true;return false; catch (Exception e) e.printStackTrace();finallyJDBCUtil.free(rs, stmt, conn);return false;2、部署Oracle數(shù)據(jù)庫(kù),添加此項(xiàng)目所需要的表、序列、觸發(fā)器和數(shù)據(jù)。數(shù)據(jù)庫(kù)架構(gòu)如圖: 3、復(fù)制shopping04項(xiàng)目,命名為

19、shopping04_test,改寫(xiě)代碼,作為SQL注入演示。如圖所示: 不可防止的SQL注入代碼:public Boolean checkUser(String loginid, String password) Connection conn=null;Statement stmt=null;Boolean rs=false;try conn=JDBCUtil.getConnection();stmt=conn.createStatement();String sql="select * from customer where loginid='"+loginid+"' and password='"+password+"'"rs=stmt.execute(sql);return rs

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論