亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

一個簡單的后臺與數(shù)據(jù)庫交互的登錄與注冊[sql注入處理、以及MD5加密]

2024-08-31 01:04:30
字體:
供稿:網(wǎng)友

一、工具:
 vs2013[因?yàn)槲椰F(xiàn)在用的也是2013,版本隨便你自己開心]
 sql2008[準(zhǔn)備過久升級] 

二、用到的語言

HTML+CSS+Jquery+Ajax+sqlserver

HTML[相當(dāng)于一個人]

css[要穿衣服]

Jquery[人要做一些動作,Jquery是對js一些常用方法的封裝]

Ajax[建立前端頁面與數(shù)據(jù)庫的交互]
sqlserver[數(shù)據(jù)庫] 

三、過程
html部分代碼:

<body>  <div id="header">    <div id="header_con">      <a href="javascript:;" onclick="showRegBox()">注冊</a>      <a href="javascript:;" onclick="ShowLoginBox()">登錄</a>    </div>  </div>  <div id="loginBox">    <div class="login_Item">      <input type="text" id="TxtUserName" placeholder="手機(jī)郵箱/用戶名" />    </div>    <div class="login_Item"><input type="password" id="TxtPwd" placeholder="請輸入密碼" /></div>    <div class="login_Item"><a href="javascript:;" onclick="login()">登錄</a></div>  </div>  <div id="Regbox">    <div class="login_Item"><input type="text" id="TxtRegUserName" placeholder="手機(jī)郵箱/用戶名" /></div>    <div class="login_Item"><input type="password" id="TxtRegPwd" placeholder="請輸入密碼" /></div>    <div class="login_Item"><input type="text" id="TxtRegqq" placeholder="QQ號"/></div>    <div class="login_Item"><input type="text" id="TxtRegEmail" placeholder="郵箱" /></div>    <div class="login_Item"><a href="javascript:;" onclick="Reglogin()">注冊</a></div>    </div></body>

css代碼:

* {  margin:0px;  padding:0px;}#header {  height:40px;  width:100%;  background:#000000;}a { text-decoration:none;}#header a {  float:right;  color:#ffffff;  line-height:40px;  margin-left:10px;}#header_con {  width:1200px;  margin:0px auto;}.login_Item {  margin-left:20px;}.login_Item input {  width:348px;  height:40px;  margin-top:10px;  border:solid 1px #04a6f9;}.login_Item a {  margin-top:20px;  width:350px;  height:40px;  display:block;  background:#04a6f9;  color:#ffffff;  line-height:40px;  text-align:center;}#loginBox {  display:none;/*//隱藏狀態(tài)*/  margin:0px auto;}#Regbox {  display:none;} 

js代碼:[用了layer插件]

/// <reference path="_references.js" />/// <reference path="jquery.md5.js" />function ShowLoginBox(){  layer.open({    type: 1,    title: "用戶登錄",    //設(shè)置div大小    area: ["390px", "300px"],    content: $("#loginBox")  });}function login(){  //1.獲取到用戶名和密碼  var username = $.trim($("#TxtUserName").val());  var pwd =$.md5( $.trim($("#TxtPwd").val()));  //2.判斷用戶名和密碼是否為空  if (username == "" || pwd == "") {    layer.alert("用戶名或密碼不能為空!",      {        title: "提示:",        icon: 5      });  }  else  {    $.post("/Handler1.ashx", { "UserName": username, "Pwd": pwd,"cmd":"login" }, function (data)    {      if (data == "登錄成功") {        //layer.alert("登錄成功!",        layer.msg("登錄成功!",          {            //title: "提示:",            icon: 6          });      }      else      {        layer.msg("用戶名或密碼不正確",          {            //title: "提示:",            icon: 5          });      }    });  }}function showRegBox(){  layer.open({    type:1,    title:"注冊",    area: ["390px", "350px;"],    //div的內(nèi)容    content:$("#Regbox")  });}function Reglogin(){  //1.獲取到輸入的內(nèi)容  var username = $.trim($("#TxtRegUserName").val());  var pwd =$.md5($.trim($("#TxtRegPwd").val()));  var qq = $.trim($("#TxtRegqq").val());  var email = $.trim($("#TxtRegEmail").val());  //并做判斷  if (username == "" || pwd == "") {    layer.msg("用戶名或密碼不能為空!");  }  else  {//cmd用做標(biāo)示,判斷是注冊還是登錄    $.post("/Handler1.ashx", { "UserName": username, "Pwd": pwd,"qq":qq,"email":email,"cmd": "reg" }, function (data)    {      if (data == "注冊成功") {        layer.msg("恭喜你,注冊成功!",          {            icon: 6          });      }      else      {        layer.msg(data,          {            icon:5          });      }    });  }}

ajax代碼:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Data.SqlClient;namespace baidu20160707{  /// <summary>  /// Handler1 的摘要說明  /// </summary>  public class Handler1 : IHttpHandler  {    public HttpContext context;    public string strResult = "";    public void ProcessRequest(HttpContext context)    {      this.context = context;      string cmd=context.Request.Form["cmd"];      switch (cmd)      {        case "login":          strResult = loginAjax();          break;        case "reg":          strResult = RegAjax();          break;      }      context.Response.Write(strResult);    }    //登錄    public string loginAjax()    {      //1.接收傳過來的用戶名和密碼      string username = context.Request.Form["username"];      //類名調(diào)用方法,32位,再做加鹽處理      string pwd =Md5Class.GetMD5( context.Request.Form["pwd"]+"傻逼玩意",32);      //所在對應(yīng)的id是否存在      //string strsql = string.Format("select id from Users where UserName='{0}' and Pwd='{1}'", username, pwd);      //sql注入處理1.@傳參的方式,, username, pwd不要,'分號也不要'      string strsql = string.Format("select id from Users where UserName=@UserName and Pwd=@Pwd");      //sql注入處理2.調(diào)用SqlParameter[]數(shù)組對數(shù)據(jù)進(jìn)行過濾      SqlParameter[] paras = new SqlParameter[]       {        new SqlParameter("@UserName",SqlDbType.NVarChar),        new SqlParameter("@Pwd",SqlDbType.NVarChar)      };      //sql注入處理3.指定它的值      paras[0].Value = username;      paras[1].Value = pwd;      //sql注入處理,4.不能忘記把數(shù)組對象傳進(jìn)去      if (SqlHelper.Exists(strsql,paras))      {        //context.Response.Write("登錄成功");        return "登錄成功";      }      else      {        //context.Response.Write("用戶名或密碼不正確");        return "用戶名或密碼不正確";      }    }    //注冊    public string RegAjax()    {      //接收傳過來的用戶名和密碼      string username=context.Request.Form["username"];      string pwd=Md5Class.GetMD5(context.Request.Form["pwd"]+"傻逼玩意",32);      string qq=context.Request.Form["qq"];      string email = context.Request.Form["email"];      //string strsql1 = string.Format("select id from Users where UserName='{0}' ",username,pwd);      string strsql1 = string.Format("select id from Users where UserName=@UserName ");      SqlParameter[] paras1 = new SqlParameter[]       {        new SqlParameter("@UserName",SqlDbType.NVarChar)      };      paras1[0].Value = username;      if (SqlHelper.Exists(strsql1, paras1))      //if (SqlHelper.Exists(strsql1))      {        return "該用戶已注冊,請重新輸入";      }      else      {        //不存在就注冊        //string strsql2 = string.Format("insert into Users (UserName,Pwd,QQ,eMail) values('{0}','{1}','{2}','{3}')", username, pwd, qq, email);        //, username, pwd, qq, email        string strsql2 = string.Format("insert into Users (UserName,Pwd,QQ,eMail) values(@UserName,@Pwd,@QQ,@eMail)");        SqlParameter[] paras2 = new SqlParameter[]         {          new SqlParameter("@UserName",SqlDbType.NVarChar),          new SqlParameter("@Pwd",SqlDbType.NVarChar),          new SqlParameter("@QQ",SqlDbType.NVarChar),          new SqlParameter("@eMail",SqlDbType.NVarChar),        };        paras2[0].Value = username;        paras2[1].Value = pwd;        paras2[2].Value = qq;        paras2[3].Value = email;        //插入處理        if (SqlHelper.ExecteNonQueryText(strsql2, paras2) > 0)        {          return "注冊成功";        }        else        {          return "注冊失敗";        }      }    }    public bool IsReusable    {      get      {        return false;      }    }  }}

效果:點(diǎn)擊登錄彈出登錄框,點(diǎn)擊注冊,彈出注冊框

登錄,注冊,sql注入,MD5加密

四、MD5加密算法

MD5加密算法:大多數(shù)情況下,用戶的密碼是存儲在數(shù)據(jù)庫中的,如果不采取任何的保密措施,以明文的方式保存密碼,查找數(shù)據(jù)庫的人員就可以輕松獲取用戶的信息,所以為了增加安全性,對數(shù)據(jù)進(jìn)行加密是必要的。MD5,是一種用于產(chǎn)生數(shù)字簽名的單項散列算法,它以512位分組來處理輸入的信息,且每一分組又被劃分為16位子分組,經(jīng)過一系列處理,算法的輸入由4個32位分組級聯(lián)后生成一個128位散列值。

沒有加密之前的明文通過解析的效果:

登錄,注冊,sql注入,MD5加密

注冊信息:

登錄,注冊,sql注入,MD5加密

建議:從源頭解決這種問題,運(yùn)用正則表達(dá)式從源頭入手,盡量設(shè)置一些含有特殊字符的密碼。

雖然MD5加密是單項加密,但其結(jié)構(gòu)還是可以破解的。所以,通常情況下,我們后做[兩次md5加密,再做加鹽處理]。

 

用了sql注入處理+MD5兩次加密以及加鹽處理之后的效果:

登錄,注冊,sql注入,MD5加密

數(shù)據(jù)庫顯示的該條數(shù)據(jù):

登錄,注冊,sql注入,MD5加密

五、sql注入

sql注入是指攻擊者利用數(shù)據(jù)庫數(shù)據(jù)的漏洞進(jìn)行攻擊,特別是在登錄時,用戶常利用SQL語句中的特定字符創(chuàng)建一個恒等條件,從而不需要任何用戶名和密碼就可以訪問網(wǎng)站數(shù)據(jù)。

具體:http://www.cnblogs.com/wangwangwangMax/p/5551614.html

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。

作者:wangwangwangMax


注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产经典欧美精品| www精品美女久久久tv| 亚洲aⅴ日韩av电影在线观看| 欧美一区二区三区久久精品茉莉花| 精品视频高潮| 中文写幕一区二区三区免费观成熟| 91啪九色porn原创视频在线观看| 亚洲综合在线免费观看| 国产69精品久久久久按摩| 亚洲精品自产拍在线观看app| 国产久一道中文一区| 美女100%一区| 69久久精品无码一区二区| av网站在线免费观看| 成人有码在线视频| 日本美女一区二区三区视频| 天天影视综合| 久久久久久爱| 亚州国产精品久久久| 成年在线观看免费人视频| 三级电影一区| 91久久精品国产91久久性色| 爆操妹子视频在线观看| 另类天堂视频在线观看| 婷婷国产精品| 国产在线视频99| 中文字幕在线观看免费视频| 国产亚洲欧洲高清一区| 五月婷婷在线观看| 免费aⅴ网站| 色婷婷av一区二区三区之一色屋| 欧美电影在线免费观看| 一区在线播放视频| 久久亚洲影院| 国产免费福利网站| 精品久久久久久久久国产字幕| 在线观看中文字幕一区| 最近中文字幕免费| 亚洲狠狠爱一区二区三区| 欧美四级在线| 日韩激情av在线免费观看| 麻豆一区产品精品蜜桃的特点| 亚洲欧美另类综合偷拍| 在线观看国产免费视频| 欧美蜜桃一区二区三区| 国产秒拍福利视频露脸| 五月婷婷激情视频| 亚洲欧美日韩一二三区| 四虎国产精品免费久久5151| 亚洲精华国产欧美| 欧美日韩电影在线| 99久久夜色精品国产网站| 国产精品毛片久久| 18深夜视频在线观看| 国产国产国产国产国产国产| 国产黄色免费看| 在线视频一区二区三区四区| 久久全球大尺度高清视频| 欧美日韩一区二区三区四区五区六区| 亚洲午夜在线观看视频在线| yourporn在线观看视频| 91久久久久| 国产丰满果冻videossex| 91人妻一区二区三区蜜臀| 国产三级生活片| 91精品国产综合久久久久| 亚洲欧美综合自拍| 在线黄色国产电影| 久热国产在线视频| 欧美亚洲丝袜| 久久国产在线视频| 欧美高清性xxxx| 69xxx免费视频| 成网站在线观看人免费| 天天做天天爱天天高潮| 国产精品污网站| 国产乱国产乱老熟300| 久久久国产成人精品| 国产丝袜自拍| 亚洲精品一区av| 久久亚洲精品国产精品紫薇| 免费男女羞羞的视频网站中文字幕| 2018中文字幕在线观看| 欧美精品momsxxx| 无码精品人妻一区二区三区影院| 特级丰满少妇一级aaaa爱毛片| 中文字幕第21页| 欧美性一级生活| 电影91久久久| 久久久久青草大香线综合精品| 国产成a人亚洲精v品无码| 亚洲电影视频在线| 2023国产一二三区日本精品2022| 精品无码三级在线观看视频| 国产人妖在线观看| 亚洲久久久久久久久久久| www.天堂乱色| 日韩一区二区电影| 亚洲欧洲二区| 中文字幕在线中文| 国产精品福利av| 亚洲sss综合天堂久久| 99v久久综合狠狠综合久久| 欧美激情一区二区三区在线视频观看| 国产一级在线视频| 欧美成人免费小视频| 黄色a级片在线观看| 国内精品美女在线观看| 天干天干啦夜天干天2019| 久久久久久久久电影| 天天碰夜夜操| 亚洲色图激情小说| 麻豆精品视频入口| 国产特级淫片高清视频| 日韩精品一区二区三区视频播放| 欧美亚洲尤物久久| 亚洲成人自拍偷拍| 神马亚洲视频| 超碰97网站| 日韩av综合在线观看| 欧美xxbbb1手交| 91成人福利在线观看| 在线视频一区二区三区四区| 国产免费一级视频| 日韩精品久久一区| 亚洲二区在线观看| 亚洲xxxx视频| 欧美尤物巨大精品爽| 男男电影完整版在线观看| 一区二区三区日韩精品| 四虎av在线| 成年人视频在线免费观看| 久久中文字幕视频| 日韩中文字幕一区| 青青国产在线视频| 亚洲网站视频在线观看| 伊人久久99| 中文字幕av资源| 国产一区二区精品免费| 欧美日韩一区二区三区在线电影| 91久久精品国产性色| 午夜精品久久久久久久99热影院| 国产精品片aa在线观看| 久久影院一区| 两女双腿交缠激烈磨豆腐| 亚洲高清不卡| 欧美精品色视频| 国产精品嫩草影院8vv8| 国产伦精品一区二区三区视频青涩| 亚洲国产成人av| 一级片视频网站| 天天干天天操天天爱| 成人污版视频| 荡女精品导航| 欧美三级情趣内衣| 成人午夜国产福到在线| 自拍偷拍欧美| 亚洲人成电影网站色| 一本久道久久综合婷婷鲸鱼| a中文在线播放| 日韩特级黄色片| 欧美日韩色婷婷| 精品国产黄色片| juy有坂深雪中文字幕| 亚洲精品中文字幕无码蜜桃| 亚洲国产精品尤物yw在线观看| 成人禁在线观看网站| 中文字幕成人乱码在线电影| 懂色av懂色av粉嫩av| 中文字幕成人动漫| 欧美色图亚洲天堂| 日韩精品一区二区av| 欧美日本在线观看| 日韩av免费看网站| 97人摸人人澡人人人超一碰| 亚洲免费在线电影| 欧美日韩久久久一区| 欧美日韩不卡中文字幕在线| 丁香五精品蜜臀久久久久99网站| 欧美最猛黑人xxxx黑人猛交3p| 欧美不卡一区| 9999在线精品视频| a级女人18毛片| 国产一区激情在线| 色综合一本到久久亚洲91| 亚洲成人av电影在线| 777久久久精品| 特黄特色大片免费视频大全| 美女网站视频在线观看| 老司机免费在线视频| 色婷婷精品国产一区二区三区| 国产伦精品一区二区免费| 国产小视频在线免费观看| 99国产精品久久一区二区三区| 国产不卡一区二区三区在线观看| wwwwxxxxx欧美| 色婷婷亚洲精品| 亚洲高清免费观看高清完整版| 久久久久久91香蕉国产| 亚洲国产视频一区| 欧美一区二区在线观看| 日本精品在线| 日韩精品一区二区三区电影| 中文字幕巨乱亚洲| 99久久免费国产精精品| 亚洲精品美女在线观看播放| 天堂av最新在线| 日韩在线视频观看免费| 亚洲人成网站在线播| 日韩片电影在线免费观看| 欧美激情视频一区二区三区不卡| 国产日韩精品久久久| 亚洲专区一区| 老女人性淫交视频| 中文字幕av第一页| av在线不卡顿| 亚洲一区二区三区sesese| 99re在线视频播放| 国产精品免费av一区二区| 偷拍视频一区二区| 色婷婷av一区二区三区在线观看| 少妇一级淫片免费看| 国产精品第3页| 欧美日韩国产三区| 两个人的视频www国产精品| 国产精品国产三级国产有无不卡| 手机免费看av| 亚洲天堂精品在线观看| 在线免费观看电影网站入口| 久一区二区三区| www.爱色av.com| 九九九久久久精品| 一级特黄免费视频| 国产小视频国产精品| 久久人人97超碰人人澡爱香蕉| 久久免费看少妇高潮v片特黄| 影音av在线| 精品少妇一二三区| 在线播放欧美女士性生活| 国产综合久久久久| 久久高清国产| 成人国产一区二区三区| 国产精品久久激情| 夜夜骑夜夜操| 国产精品久久久一区二区三区| 精品国产91亚洲一区二区三区婷婷| 久久久蜜臀国产一区二区| 欧美日韩国产123区| 久久久久久久国产精品影院| 日韩精品在线视频免费观看| 亚洲h精品动漫在线观看| 午夜久久久精品| 天天干,天天操,天天射| 一本久久知道综合久久| 久久久久免费网| 成人晚上爱看视频| 国产精品传媒毛片三区| 国产午夜精品全部视频播放| 精精国产xxxx视频在线播放| 亚洲欧美成人在线| 香蕉视频免费在线看| 欧美性生给视频| 欧美一区二区三区精品| 国产精品美女久久久久久久| 亚洲熟妇一区二区| 亚洲精品国产一区二区三区| 黄色在线观看www| 久久中文精品视频| 亚洲高清中文字幕| 网友自拍亚洲| 全色精品综合影院| 9l视频自拍九色9l视频成人| 538国产精品一区二区在线| 桃乃木香奈av在线| 久草成人资源| 成人动漫在线观看视频| 香港日本韩国三级网站| 中文字幕一区日韩精品| 蜜桃导航-精品导航| 成人性生交大免费看| 免费观看性欧美大片无片| 丁香亚洲综合激情啪啪综合| 大量国产精品视频| 久久电影在线| 亚洲欧美在线综合| 蜜桃视频在线观看免费视频网站www| 麻豆av福利av久久av| 老司机精品久久| 91精品婷婷国产综合久久性色| 九九精品九九| 亚洲欧美色视频| 欧美精品欧美精品| 捆绑调教日本一区二区三区| www操操操| 91精品91久久久中77777| 久久精品一区八戒影视| 欧美aⅴ一区二区三区视频| 18禁裸男晨勃露j毛免费观看| 不卡的av网站| 国产精品成人99一区无码| 少妇激情av一区二区三区| 亚欧洲精品视频在线观看| 日韩不卡免费高清视频| 91九色国产社区在线观看| 日韩一级不卡| 亚洲 高清 成人 动漫| 99视频免费在线观看| 欧美疯狂xxxx大交乱88av| 狠狠操天天操夜夜操| 亚洲人成啪啪网站| 亚洲欧洲日夜超级视频| 青青草av在线播放| 中文欧美日本在线资源| 四虎电影院在线观看| 无尽裸体动漫2d在线观看| 国产一区成人| 亚洲在线一区| 妖精视频在线观看| 日本大胆人体视频| 亚洲欧美在线视频观看| 欧美激情一区二区三区蜜桃视频| 米奇777在线欧美播放| 成人午夜福利视频| 国产精品福利无圣光在线一区| 日本一区二区在线免费观看| 欧美综合在线观看视频| 国产免费不卡视频| 少妇一级淫片日本|