asp.net 用户登录安全防范

    在写asp.net的代码的时候必然要跟数据库打交道,因此要特别注意这方面的安全,今天随便写写如此防护

    倘若我们设计SQL查询字符中如下:

string sql="select * from userinfo  whre usertext="+pu+"and userpass="+pw;

我们这里的userinfo是表名,而pu保存用户名,pw保存的是密码

如果,你们这么写那么用户就可能通过输入登录信息来欺骗服务器的验证

如果用户在输入密码的那里加上"or1=1就可以直接饶过密码验证

那么我们通过获取文本框的文本进行发送

那么数据库接收的语句将是:

string sql="select * from userinfo where usertext="" or1=1 and userpass=""or1=1;

我们知道1=1是一个恒等式,那么这个验证就形成一个无条件的查询,所以我自然而然可以通过服务器的验证了


防止脚本注入

我直接把我写的发送上来,其实无非就是检查你的接受的表单进行判断如果有,<、〉、”等特殊字符时就进行编码替换

在前面我们加上using System.Text;这个命名空间


  public static string Clearstr(string inputstring, int maxLength)

    {

        StringBuilder retVal = new StringBuilder();//实例化一个stringBuilder对象

        if ((inputstring != null) && (inputstring != string.Empty))

        {

            inputstring = inputstring.Trim();

            if (inputstring.Length > maxLength)

            {

                inputstring = inputstring.Substring(0, maxLength);//进行长度检查

            }

           


            for (int i = 0; i < inputstring.Length; i++)

            {

                switch (inputstring[i])

                {

                    case '"':

                        retVal.Append("&quot;");

                        break;

                    case '<':

                        retVal.Append("&lt;");

                        break;

                    case '>':

                        retVal.Append("&gt;");

                        break;

                    default:

                        retVal.Append(inputstring[i]);

                        break;

                }

            }

            retVal.Replace("'", "''");

        }

        return retVal.ToString();

    }


我们就可以在自己的登录文件中引用这个函数

格式为:pu=clearstr(TextBox_usertext.Text,20);//TextBox_usertext.Text是用户输入的用户名文本框,20是最大可输入字符数

pw=Clearstr(TextBox-userpass.Text,20);是用户输入的密码文本框

这样就可以实现替换危险字符了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值