[Investor Relations]  |  官方微博

.NET培训

美国上市公司 · 亿元级外企Java培训企业

  • 全国服务监督电话4008270010
.Net培训 > NET学习笔记 > .Net 基础开发这一点你必须知道
  • .Net 基础开发这一点你必须知道

    发布:.Net培训  来源:NET学习笔记  时间: 2016年12月01日

  • .Net 基础开发这一点你必须知道...

  • 基础必知的SQL注入,去年写的,.Net开发这些最基本的东西应该知道

    1.sql注入的简介 Sql注入:英文解释SQL Inject ion。就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询 字符串,最终达到欺骗服务器执行恶意的SQL命令。

    SqL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问 没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。

    Sql注入发生在什么位置? 假设我们在浏览器中输入URL?www.sample.com,由于它只是对页面的简单请求无需对数据库动进行动态请求,所以它不存在SQL Injection,当我们输入www.sample.com?testid=23时,我们在URL中传递变量testid,并且提供值为23,由于它是对数据库进行动态查询的请求(其中?testid=23表示数据库查询变量),所以我们可以该URL中嵌入恶意SQL语句。

    2.Sql注入出现的原因 其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。

    3.Sql注入的防护输入验证 检查用户输入的合法性,确信输入的内容只包含合法的数据。当然脚本是执行在客户端,如果用脚本的方式来限制输入的话,是很容易绕过脚本来输入非法的输入。但是脚本是我们目前所能做的防止Sql注入

    前所能做的防止Sql注入错误信息 防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。

    加密处理 将用户登录名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。加密技术的过程还是要了解的

    存储过程来执行所有的查询 SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。一般的书上的写的登录用这种还是好的!也是我们很容易做到的!

    确保数据库安全 锁定你的数据库的安全,只给访问数据库的web应用功能所需的最低的权限,撤销不必要的公共许可,使用强大的加密技术来保护敏感数据并维护审查跟踪。如果web应用不需要访问某些表,那么确认它没有访问这些表的权限。如果web应用只需要只读的权限,那么就禁止它对此表的 drop 、insert、update、delete 的权限,并确保数据库打了最新补丁。

    4.一些简单的SQL注入例子 (1)第一个例子sql拼接会出现的漏洞 这是新鲜生活项目的用户表

    Net 开发这一点你必须知道

    一般的sql拼接登录

    Net 开发这一点你必须知道

    使用非法的字符进行注入 在用户名后加 ‘-- 这种叫做注释式注入

    Net 开发这一点你必须知道

    类似于这种简单的拼接就是把用户名后面的密码给注释掉了,所以验证也就成了只要有这个用户名就登录成功。注释注入还有多行注释/**/,还有字符串的串联注入,也就是使用or ,and等关键字串联sql 语句构造你想要的条件,sql拼接验证主要就是这两种:1.注释注入和字符串串联注入

    多行注释注入

    Net 开发这一点你必须知道

    字符串串联注入

    Net 开发这一点你必须知道

    单击登录执行这些sql语句是这几种形式

    Net 开发这一点你必须知道

    使用存储过程带参数登录就不会这么轻易地被注入,虽然也会发生注入,但不至于这么容易,也可以使用验证控件来限制用户的输入。

    Net 开发这一点你必须知道

    这些是最基础的,可以自己练习练习

  • 上一篇:.NET开发工具之Excel导出公共类

    下一篇:.NET分布式系统架构的思路

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56