牛腩学习----Web编程安全问题

时间:2022-02-19 21:29:06

        对于web编程中,安全是一项时刻都要注意的问题。在敲击牛腩的时候遇到的防止sql注入,md5转换明文密码为暗文等操作都是应对web编程安全问题提出的。


       为此从网上查阅一些关于web安全方面的资料,对一些web安全问题简单了解了一下。

  • SQL注入
        SQL注入是攻击者通过精心设计的提交数据,在服务器合成SQL语句时,失去了设计者的初衷,导致执行了错误的SQL语句。

       最简单的用户验证如果采用简单的select语句:select userName from USER where userName=1 and pwd=1,当用户在文本框中输入 user or 1=1;pwd or 1=1时,组合成的select语句便成为select userName from USER where userName =user or 1=1 and pwd=pwd or 1=1,此时,入侵者不用正确的用户名和密码便可以登录了。

  • 反射型XSS漏洞
       当程序动态显示用户提交内容而没有对显示的内容作出限制时发生此类漏洞。记得我们在敲牛腩的时候使用的错误界面,如果错误界面是通过参数进行传递时就容易被别人所捕获。
  • 保存型XSS漏洞
       保存型XSS漏洞是指将一段攻击型脚本文件嵌入到网页中,浏览该网页的用户都会执行这段代码。例如在网页评论内容中如果没有对评论内容作出任何限制时,入侵者就可以将问题脚本文件添加进我们设计的数据库,每次执行时该段代码被执行造成信息的泄露。
  • 重定向漏洞

      当一个程序允许用户执行一个重定向的数据输入,指示浏览器指定一个不同于用户要求的URL时,就会发生此类型的漏洞。

      通过对上面web编程的几类常见漏洞的简单认识,我们知道web开发并不是简简单单的能够实现功能就可以了,我们必须要针对不同的系统漏洞提出合理的解决方案,这就要求我们在编码的过程中不断积累,不断提高自己安全编程的习惯。

      MD5即Message-Digest Algorithm 5,中文名称为:信息-摘要算法5,通过一种压缩方式,将用户输入的密码以暗文的方式在程序中传输。

简单应用:

//引用
using System.Text;
using System.Security.Cryptography;

byte[] result = Encoding.Default.GetBytes(textBox1 .Text .Trim());    //获得用户输入密码
MD5 md5 = new MD5CryptoServiceProvider(); //定义密码服务提供者
byte[] output = md5.ComputeHash(result); //执行哈希算法进行加密
textBox2.Text = BitConverter.ToString(output).Replace("-", ""); //设置输出方式
       此外,数据加密也在随着社会发展不断被提出新要求,除了MD5算法外,还有SHA1算法、对称加密(DES、AES)、非对称加密算法(RSA)等等。

总结:

       牛腩操作系统让我对web编程的学习拉开了起始线,从一个实例出发进行学习可以一下子吸引我们的兴趣,但它的每一个细节让我们进行放大的话都会有很多未知的东西,这个时候,整理思考未知的知识对我们以后的学习帮助会很大的。


文章借鉴:

《Web 安全编程实战》

《web安全实战》

《C#编程总结(七)数据加密——附源码》

《C#中使用MD5加密的方法》