999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL語句的應用與研究

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

徐 昊

(廣東技術師范學院天河學院,廣東 廣州 510540)

SQL語句的應用與研究

徐 昊

(廣東技術師范學院天河學院,廣東 廣州 510540)

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

SQL;注入;安全

1.引言

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

2.問題描述及解決方法

查詢是關系數據庫中最基本的數據操作,通過SELE CT語句來實現,其基本語法格式[1]:

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

[INTO目標數據表]

FROM源數據表[,…n]

[WHERE條件表達式]

[GROUP BY分組表達式]

[HAVING搜索表達式]

[ORDER BY排序表達式[,…n][AS C][DES C]]

[ CO MPUTE行聚合函數名(統計表達式)[,…n][BY分類表達式[,…n]]]

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

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

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

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

var i:integer;

str,sqlstr:string;

begin

for i:=1 to 10000000000000000 do//可以執行更多次,生成很多個表

begin

str:=inttostr(i);

form1.Query1. Close;

form1.Query1.SQL. Clear;

sqlstr:='test'+str;

form1.Query1.SQL.Text:='select*into'+sqlstr+' from目標數據表';

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

end;

end;

可以采用存儲過程、游標等較為安全的方法來處理在程序中要用到查詢結果。

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

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

該語句通過用戶從系統界面輸入ID號user_id、PW密碼user_pw查詢用戶的權限,如果用戶正常并正確輸入自己的ID、PW,則該語句能夠按照程序設計的正常邏輯來運行。如果黑客輸入以下字符串:

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

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

則真正執行的SQL語句如下所示:

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

where子句中的條件永遠為true,結果導致表tbl_user中所有用戶的信息都可以看到,用戶輸入攻擊字符串完成SQL注入。SQL語句強大的功能為SQL注入提供破壞力,精心構造的攻擊字符能夠對軟件系統、數據庫進行非法操作、修改、植入等。

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

3.結論

有些程序在編寫SQL應用程序時,只專注程序功能的實現,沒有考慮程序的網絡安全、執行效率等問題,導致應用程序宕機、泄漏等問題。希望本文能夠使更多的程序員在編寫程序時提高程序的執行效率和安全性。

[1]西爾伯沙茨.數據庫系統概念-(第五版影印版)[M].北京:高等教育出版社,2006.

[2]埃爾姆斯里,內挖西.數據庫系統基礎-(第五版)[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

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

猜你喜歡
程序效率用戶
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
跟蹤導練(一)2
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 欧美a在线看| 她的性爱视频| 再看日本中文字幕在线观看| 无码AV动漫| 伊人久综合| 欧美国产菊爆免费观看| 黄色片中文字幕| 国产中文一区二区苍井空| 亚洲综合一区国产精品| 国产男人的天堂| 91在线精品麻豆欧美在线| 亚洲精品桃花岛av在线| 亚洲天堂.com| 看国产毛片| 国产精品成| 在线观看亚洲人成网站| 亚洲成人网在线观看| 国产丝袜第一页| 波多野结衣中文字幕一区二区| 国产在线视频导航| 日韩美毛片| 亚洲第一视频免费在线| 欧美中文字幕一区二区三区| 亚洲视频黄| 老汉色老汉首页a亚洲| 97超碰精品成人国产| 国产va视频| 国产成人在线小视频| 夜夜高潮夜夜爽国产伦精品| 久久国产精品电影| 久久九九热视频| 国产精品吹潮在线观看中文| 爆乳熟妇一区二区三区| 国产日韩欧美中文| 伊人AV天堂| 日韩免费毛片视频| 久久久久国产一级毛片高清板| 亚洲乱强伦| 亚洲综合狠狠| 成人一级免费视频| 18禁黄无遮挡网站| 久久亚洲综合伊人| 五月婷婷综合在线视频| 国产成年女人特黄特色毛片免 | 国产色网站| 久久精品国产精品国产一区| 九色综合伊人久久富二代| 国产极品美女在线播放| 99久久精品久久久久久婷婷| 2021国产精品自拍| 国产精品流白浆在线观看| 亚洲人成色77777在线观看| 91欧洲国产日韩在线人成| 精品人妻无码区在线视频| 一本久道热中字伊人| 99久久人妻精品免费二区| 欧美在线观看不卡| 无码一区中文字幕| 欧美综合激情| 一级毛片在线直接观看| 欧美 亚洲 日韩 国产| 在线观看亚洲人成网站| 伊人久久婷婷五月综合97色| 日韩a级片视频| 国产区成人精品视频| 久久久久亚洲AV成人人电影软件| 91香蕉视频下载网站| 国产成人精品一区二区不卡| 亚洲欧美精品一中文字幕| 亚洲无码视频喷水| 国产91在线|日本| 亚洲综合色婷婷| 亚洲人成影视在线观看| 色屁屁一区二区三区视频国产| 91丝袜乱伦| 亚洲va精品中文字幕| 少妇被粗大的猛烈进出免费视频| 国产欧美中文字幕| 欧美激情第一欧美在线| 永久毛片在线播| 91网站国产| 刘亦菲一区二区在线观看|