SQL查询安全性及性能优化

本文深入探讨了SQL注入的原理、攻击方法及其防范措施,包括限制错误信息、使用存储过程等。同时,文章详细阐述了SQL性能优化的重要性,如避免低效SQL导致的系统缓慢和死锁,介绍了SQLServer的执行原理,提供了SQL优化建议,如使用Top语句、避免索引字段数值操作等,还分享了执行计划的分析和利用来提升SQL执行效率。
摘要由CSDN通过智能技术生成
下载地址:  http://download.csdn.net/detail/jiangtongcn/4121163

SQL注入的原理

什么SQL注入

       SQL代码插入到应用程序的输入参数中,之后,SQL代码被传递到数据库执行。从而达到对应用程序的攻击目的。

注入原理

clip_image002

常见攻击方法

      检测是否可以注入【检测注入点】

              示例:http://192.168.0.1/temp.aspx?id=a or 1=1--

              如果上面语句可以执行说明可以实现注入,则可以

 

      利用系统过程、系统表注入数据库

              示例【给系统添加一个用户,黑客可以实现远程登录控制服务器】:http://192.168.0.1/temp.aspx?id=1;exec xp_cmdshell 'net user admin 123456 /add'

      绕过程序的限制

              示例:程序中往往限制单引号的数据,但是黑客传入单引号的ASCII

      跨站点注入

              Web页面挂某些恶意的HTMLJavaScript代码

防范SQL注入

      限制错误信息的输出,避免错误信息的输出使得黑客知道网站的技术实现采用什么数据库,采用什么平台

       示例:在Web.config文件中设置

       <customErrors mode="On" defaultRedirect="error.aspx">

       </customErros>

      限制访问数据库账号的权限

              在开发应用系统的时候就应该限制,给程序最小访问数据库的权限

使用参数命令传递参数

       不要使用拼接字符串的方式构造SQL语句而采用参数命令

使用存储过程

       存储过程在数据库中

       只能执行存储过程中固定的代码

限制输入长度

       防止黑客输入超大字符串,导致服务器瘫痪

       防止黑客输入较长的恶意脚本等

       实现方法:文本框的MaxLength属性

URL重写技术

       示例: http://testWeb/news.aspx?id=111

       重写成:http://testWeb/10101111.html

传递参数尽量不用字符串

       http://testWeb/news.aspx?id=111 and 1=1【黑色部分给了SQL注入的机会】

SQL优化

     为什么要优化

              开发是对性能考虑不多【技术差、项目工期紧等原因没有考虑性能问题】

              系统运行中,数据量扩大,访问量增多,蹩脚的SQL危害开始显露

     低效SQL的危害

              系统响应变慢,软件开发中的8秒定律,当打开一个软件或网页超过8秒时间还没有显示,则响应太慢。

              死锁,当不同用户都访问某些资源的时候SQL语句不当导致死锁

              客户失去信心,软件失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值