SQL语句的应用与研究.pdf

SQL语句的应用与研究.pdf

ID:57749348

大小:831.31 KB

页数:2页

时间:2020-03-28

SQL语句的应用与研究.pdf_第1页
SQL语句的应用与研究.pdf_第2页
资源描述:

《SQL语句的应用与研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学术探讨应用技术与研究2014年第10期SQL语句的应用与研究徐昊(广东技术师范学院天河学院,广东广州510540)[摘要]本文从SQL的用法、规范、INTO子句、注入(Injection)4个方面来探讨SQL语句在具体应用中出现的效率低、安全差等问题,并给出相应的策略,为后续进一步研究提供了有益的探索经验。[关键字]SQL;注入;安全序),这样程序在执行时,才能够按照规律找到合适的索引,1.引言提高查找效率,提升程序运行效果。随着网络的广泛应用,基于B/S模式的应用程序也越来(3)INTO子句问题。select查询的结果可以直接显示,越多。由于程序员的水平及经验也参差不齐,一部分程序员也

2、可以不直接显示。在程序设计过程当中往往要用到查询在编写代码的时候,不注意书写规范、对用户输入数据的合结果,但不直接显示,有些编程者往往采用INTO语句将查询法性不进行判断,使得应用程序执行效率低,且存在网络安结果保存到一个数据表中或一个临时表中。在SQLServer全等问题。数据库系统中,如果要将查询结果存放到临时表,则在临时2.问题描述及解决方法表名前要加“#”号,如果当用户断开连接时没有除去临时表,将自动除去临时表。一旦被黑客捕捉到,会利用下列类似的查询是关系数据库中最基本的数据操作,通过SELECT程序代码逻辑灌水,导致服务器资源耗尽而宕机:语句来实现,其基本语法格式[1]:proc

3、edureTForm1.Button1Click(Sender:TObject);//SELECT[ALL

4、DISTINCT]字段列表Delphi程序主要代码[INTO目标数据表]vari:integer;FROM源数据表[,…n]str,sqlstr:string;[WHERE条件表达式]begin[GROUPBY分组表达式]fori:=1to10000000000000000do//可以执行更多次,生[HAVING搜索表达式]成很多个表[ORDERBY排序表达式[,…n][ASC][DESC]]begin[COMPUTE行聚合函数名(统计表达式)[,…n][BY分str:=inttos

5、tr(i);类表达式[,…n]]]form1.Query1.Close;(1)*用法问题。对于初学者来说在编写SQL语句程序form1.Query1.SQL.Clear;时,为了图方便,常用*来代替所有字段,经常会出现:Selectsqlstr:='test'+str;*from…这样的语句。这种语句的功能是显示出表中的每form1.Query1.SQL.Text:='select*into'+sqlstr+'一个字段的全部信息,包括不需要的信息也被显示出来,这from目标数据表';样会消耗大量的内存开销、降低程序执行效率;如果表中含form1.Query1.Prepare;有图像、备注这

6、样类型的字段,会导致程序出错无法正常运form1.Query1.ExecSQL;行。这种SQL写法虽然在逻辑上是没有问题,但往往在具体end;的实际应用中由于这种不规范的SQL语句导致程序执行效end;率低、甚至出错无法正常运行。因此,在编写SQL语句程序,可以采用存储过程、游标等较为安全的方法来处理在程切记不要胡乱的使用*。序中要用到查询结果。(2)字段列表与源数据表排列顺序杂乱、不规范。有些(4)SQL注入问题。用户可以提交一段数据库查询代编程者在编写SQL程序时很随意,字段名、源数据表名任意码,根据程序返回的结果,获得某些他想得知的数据,这就是排列、杂乱无序,程序在执行时找不到合适的

7、索引,导致查找所谓的SQLInjection,即SQL注入。SQL注入的方法相当灵速度慢,影响整个程序执行效率。因此,在编写SQL语句程活,往往根据具体情况进行分析,构造巧妙的SQL语句,从而序,字段名、源数据表名排列要遵循一定的规律(升序或降窃取想要的数据。例如下面的SQL语句:——————————————作者简介:徐昊,男,湖北鄂州人,硕士,高级工程师。研究方向:数据库,算法等。-44-应用技术与研究学术探讨2014年第10期SQL=”selectu_rightfromtbl_userwhereID=’’’+us-目前SQL注入的防范主要有手工检查、自动过滤、SQLer_id+’’’+

8、andPW=’’’+user_pw+’’’”命令编码以及专用的API等方法来防范。JAVA采用预编译该语句通过用户从系统界面输入ID号user_id、PW密码语句集,它内置了处理SQL注入的能力,使用PreparedState-user_pw查询用户的权限,如果用户正常并正确输入自己的ment来代替Statement来执行SQL语句,SQL注入攻击手段ID、PW,则该语句能够按照程序设计的正常逻辑来运行。如将无效。果黑客

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。