亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQL語句的應(yīng)用與研究

        2014-03-22 21:15:17
        電腦與電信 2014年10期
        關(guān)鍵詞:程序效率用戶

        徐 昊

        (廣東技術(shù)師范學(xué)院天河學(xué)院,廣東 廣州 510540)

        SQL語句的應(yīng)用與研究

        徐 昊

        (廣東技術(shù)師范學(xué)院天河學(xué)院,廣東 廣州 510540)

        本文從SQL的用法、規(guī)范、INTO子句、注入(Injection)4個(gè)方面來探討SQL語句在具體應(yīng)用中出現(xiàn)的效率低、安全差等問題,并給出相應(yīng)的策略,為后續(xù)進(jìn)一步研究提供了有益的探索經(jīng)驗(yàn)。

        SQL;注入;安全

        1.引言

        隨著網(wǎng)絡(luò)的廣泛應(yīng)用,基于B/S模式的應(yīng)用程序也越來越多。由于程序員的水平及經(jīng)驗(yàn)也參差不齊,一部分程序員在編寫代碼的時(shí)候,不注意書寫規(guī)范、對(duì)用戶輸入數(shù)據(jù)的合法性不進(jìn)行判斷,使得應(yīng)用程序執(zhí)行效率低,且存在網(wǎng)絡(luò)安全等問題。

        2.問題描述及解決方法

        查詢是關(guān)系數(shù)據(jù)庫中最基本的數(shù)據(jù)操作,通過SELE CT語句來實(shí)現(xiàn),其基本語法格式[1]:

        SELE CT[ALL|DISTIN CT]字段列表

        [INTO目標(biāo)數(shù)據(jù)表]

        FROM源數(shù)據(jù)表[,…n]

        [WHERE條件表達(dá)式]

        [GROUP BY分組表達(dá)式]

        [HAVING搜索表達(dá)式]

        [ORDER BY排序表達(dá)式[,…n][AS C][DES C]]

        [ CO MPUTE行聚合函數(shù)名(統(tǒng)計(jì)表達(dá)式)[,…n][BY分類表達(dá)式[,…n]]]

        (1)*用法問題。對(duì)于初學(xué)者來說在編寫SQL語句程序時(shí),為了圖方便,常用*來代替所有字段,經(jīng)常會(huì)出現(xiàn):Select *from…這樣的語句。這種語句的功能是顯示出表中的每一個(gè)字段的全部信息,包括不需要的信息也被顯示出來,這樣會(huì)消耗大量的內(nèi)存開銷、降低程序執(zhí)行效率;如果表中含有圖像、備注這樣類型的字段,會(huì)導(dǎo)致程序出錯(cuò)無法正常運(yùn)行。這種SQL寫法雖然在邏輯上是沒有問題,但往往在具體的實(shí)際應(yīng)用中由于這種不規(guī)范的SQL語句導(dǎo)致程序執(zhí)行效率低、甚至出錯(cuò)無法正常運(yùn)行。因此,在編寫SQL語句程序,切記不要胡亂的使用*。

        (2)字段列表與源數(shù)據(jù)表排列順序雜亂、不規(guī)范。有些編程者在編寫SQL程序時(shí)很隨意,字段名、源數(shù)據(jù)表名任意排列、雜亂無序,程序在執(zhí)行時(shí)找不到合適的索引,導(dǎo)致查找速度慢,影響整個(gè)程序執(zhí)行效率。因此,在編寫SQL語句程序,字段名、源數(shù)據(jù)表名排列要遵循一定的規(guī)律(升序或降序),這樣程序在執(zhí)行時(shí),才能夠按照規(guī)律找到合適的索引,提高查找效率,提升程序運(yùn)行效果。

        (3)INTO子句問題。select查詢的結(jié)果可以直接顯示,也可以不直接顯示。在程序設(shè)計(jì)過程當(dāng)中往往要用到查詢結(jié)果,但不直接顯示,有些編程者往往采用INTO語句將查詢結(jié)果保存到一個(gè)數(shù)據(jù)表中或一個(gè)臨時(shí)表中。在SQL Server數(shù)據(jù)庫系統(tǒng)中,如果要將查詢結(jié)果存放到臨時(shí)表,則在臨時(shí)表名前要加“#”號(hào),如果當(dāng)用戶斷開連接時(shí)沒有除去臨時(shí)表,將自動(dòng)除去臨時(shí)表。一旦被黑客捕捉到,會(huì)利用下列類似的程序代碼邏輯灌水,導(dǎo)致服務(wù)器資源耗盡而宕機(jī):

        procedure TForm1.Button1 Click(Sender:TObject);// Delphi程序主要代碼

        var i:integer;

        str,sqlstr:string;

        begin

        for i:=1 to 10000000000000000 do//可以執(zhí)行更多次,生成很多個(gè)表

        begin

        str:=inttostr(i);

        form1.Query1. Close;

        form1.Query1.SQL. Clear;

        sqlstr:='test'+str;

        form1.Query1.SQL.Text:='select*into'+sqlstr+' from目標(biāo)數(shù)據(jù)表';

        form1.Query1.Prepare;form1.Query1.ExecSQL;

        end;

        end;

        可以采用存儲(chǔ)過程、游標(biāo)等較為安全的方法來處理在程序中要用到查詢結(jié)果。

        (4)SQL注入問題。用戶可以提交一段數(shù)據(jù)庫查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL Injection,即SQL注入。SQL注入的方法相當(dāng)靈活,往往根據(jù)具體情況進(jìn)行分析,構(gòu)造巧妙的SQL語句,從而竊取想要的數(shù)據(jù)。例如下面的SQL語句:

        SQL=”select u_right from tbl_user where ID=’’’+user_id+’’’+and PW=’’’+user_pw+’’’”

        該語句通過用戶從系統(tǒng)界面輸入ID號(hào)user_id、PW密碼user_pw查詢用戶的權(quán)限,如果用戶正常并正確輸入自己的ID、PW,則該語句能夠按照程序設(shè)計(jì)的正常邏輯來運(yùn)行。如果黑客輸入以下字符串:

        ID處輸入:good(good可以用其它字符代替)。

        PW處輸入:’OK’or’8’=’8’(OK可以用其它字符代替)。

        則真正執(zhí)行的SQL語句如下所示:

        selectu_righ t,user_id from tbl_userwhereID=’good’and PW=’OK’or’8’=’8’

        where子句中的條件永遠(yuǎn)為true,結(jié)果導(dǎo)致表tbl_user中所有用戶的信息都可以看到,用戶輸入攻擊字符串完成SQL注入。SQL語句強(qiáng)大的功能為SQL注入提供破壞力,精心構(gòu)造的攻擊字符能夠?qū)浖到y(tǒng)、數(shù)據(jù)庫進(jìn)行非法操作、修改、植入等。

        目前SQL注入的防范主要有手工檢查、自動(dòng)過濾、SQL命令編碼以及專用的API等方法來防范。JAVA采用預(yù)編譯語句集,它內(nèi)置了處理SQL注入的能力,使用PreparedStatement來代替Statement來執(zhí)行SQL語句,SQL注入攻擊手段將無效。

        3.結(jié)論

        有些程序在編寫SQL應(yīng)用程序時(shí),只專注程序功能的實(shí)現(xiàn),沒有考慮程序的網(wǎng)絡(luò)安全、執(zhí)行效率等問題,導(dǎo)致應(yīng)用程序宕機(jī)、泄漏等問題。希望本文能夠使更多的程序員在編寫程序時(shí)提高程序的執(zhí)行效率和安全性。

        [1]西爾伯沙茨.?dāng)?shù)據(jù)庫系統(tǒng)概念-(第五版影印版)[M].北京:高等教育出版社,2006.

        [2]埃爾姆斯里,內(nèi)挖西.?dāng)?shù)據(jù)庫系統(tǒng)基礎(chǔ)-(第五版)[M].北京:人民郵電版社,2008.

        Research andApplication of SQL Statements

        Xu Hao
        (Tianhe College of Guangdong Polytechnic Normal University,Guangzhou 510540,Guangdong)

        This paper discusses the problems of SQL statements such as low efficiency and less-safety from the aspects of usage, specification,INTO clause and injection.It gives the corresponding strategies,and provides the useful experience for the follow-up study.

        SQL;injection;security

        徐昊,男,湖北鄂州人,碩士,高級(jí)工程師。研究方向:數(shù)據(jù)庫,算法等。

        猜你喜歡
        程序效率用戶
        提升朗讀教學(xué)效率的幾點(diǎn)思考
        甘肅教育(2020年14期)2020-09-11 07:57:42
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        跟蹤導(dǎo)練(一)2
        如何獲取一億海外用戶
        国产成人拍精品免费视频| 国产日韩欧美一区二区东京热| 国产一区二区三区乱码| 亚洲综合无码一区二区三区| www.亚洲天堂.com| 亚洲丝袜美腿精品视频| 久久精品亚洲精品国产色婷| 亚洲美免无码中文字幕在线| 国产精品黄色片在线观看| 亚洲国产女同在线观看| 亚洲 日本 欧美 中文幕| 亚洲av无码av制服丝袜在线| 国产目拍亚洲精品一区二区| 亚洲乱熟妇一区二区三区蜜桃| 国产精品人人做人人爽人人添 | 久久久久国产精品免费免费搜索| 精品久久亚洲一级α| 日本一区二区三级免费| 亚洲精品久久久久久久蜜桃| 成人免费毛片内射美女-百度 | 国产国拍精品亚洲av在线观看| 亚洲热线99精品视频| 亚洲成人福利在线观看| 亚洲一区二区视频蜜桃| 亚洲天堂精品一区入口| 亚洲日本va中文字幕| 欧洲亚洲第一区久久久| 国产一区二区亚洲一区| 岛国av无码免费无禁网站| 欧美日韩亚洲精品瑜伽裤| 激情视频在线观看国产中文| av熟妇一区二区三区| 久久人人爽人人爽人人av| 91精品啪在线看国产网站| 精品中文字幕在线不卡| 免费看黑人男阳茎进女阳道视频| 日本欧美国产精品| 国产在线视频一区二区三区| 国产播放隔着超薄丝袜进入| 欧美日本日韩aⅴ在线视频| 一区二区三区国产偷拍|