• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 網絡知識 > 路由器 > 路由器基礎 > 如何修復SQL注入漏洞

    如何修復SQL注入漏洞

    時間: 若木632 分享

    如何修復SQL注入漏洞

      以下是OMG小編為大家收集整理的文章,希望對大家有所幫助。

      SQL注入是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。其實就是就是提交精心構造的數據庫語句,使其反饋一些有用的數據。說白了就是去欺騙數據庫,假如只有web服務器的話,是沒法進行SQL注入的。

      網上常用的注入手法有兩種,一種是猜測,讓數據庫暴出用戶名、密碼等信息;另一種直接繞過認證,取得權限。相對應,要想修復此類漏洞,就必須禁止特殊數據的提交或將特殊提交的數據修改。

      下面是不同腳本語言下的防注入過濾代碼,其實思想是一致的。

      1、 PHP防注入過濾代碼

      php 代碼復制內容到剪貼板

      

      /*************************

      說明: 判斷傳遞的變量中是否含有非法字符 如$_POST、$_GET

      功能: 防注入

      使用方法: 將下列代碼保存為ak,php,調用方式 在數據提交頁加上include("ak.php");

      **************************/

      function dowith_sql($str)

      //實現將特征碼兩邊加.

      {

      $refuse_str="exec|and|or|select|update|from|where|order|by|*|delete||insert|into|values|create|table|

      database|set|char|asc|cast|declare|

      //定義防注入的字符

      $arr=explode("|",$refuse_str);

      //將$refuse_str中的值單獨取出

      for($i=0;$i

      {

      $replace="[".$arr[$i]."]";

      $str=str_replace($arr[$i],$replace,$str);

      //在變量$str中搜索字符串$arr[$i],并將其替換為字符串[$replace]

      }

      return $str;

      }

      foreach ($_GET as $key=>$value)

      //遍歷獲GET方法獲得的參數$_GET的值傳給$key,并賦值給$value

      {

      $_GET[$key]=dowith_sql($value);

      //將$value中的特征碼處理傳個$_GET[$key]

      }

      foreach ($_POST as $key=>$value)

      {

      $_POST[$key]=dowith_sql($value);

      }

      ?>

      上面的防注入的方法只是防了GET與POST方法提交的數據,但是,WEB服務器讀取數據的順序是,先取GET中的數據,沒有再去POST中的數據,沒有還會再去COOKIES中的數據,上面的代碼還沒有防cookies注入。防cookies注入就比較簡單了,cookies的id值一般只為阿拉伯數字,但是cookies注入必須得在id中構造代碼,只要在獲得參數UID后,對其進行過濾就可以了,代碼如下:

      php 代碼復制內容到剪貼板

      

      if($_COOKIE[id]!=null) {

      //判斷cookies不為空

      foreach ($_COOKIE[id] as $key=>$id){

      //讀取cookies中的值

      if (is_numeric($id)<0){

      echo " ";

      }

      }

      }

      ?>

      將上述代碼保存為hk.php。

      所以在平時應用時,在網頁上加上include("ak.php");與include("hk.php");

      2、 ASP防注入過濾代碼

      <%

      --------說明------------------

      使用方法: 在需要防注的頁面頭部用 ???? SSI ????????
    包含就可以了

      友情提示:把代碼復制到CONN.asp(數據庫連接文件) 那么,只要包含了CONN的所有文件都防注了

      -------- ------------------------

      Dim xf_Post,xf_Get,xf_In,xf_Inf,xf_Xh,xf_db,xf_dbstr

      自定義需要過濾的字串,用 "|" 分隔

      xf_In = "|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

      xf_Inf = split(xf_In,"|")

      If Request.Form<>"" Then

      For Each xf_Post In Request.Form

      For xf_Xh=0 To Ubound(xf_Inf)

      If Instr(LCase(Request.Form(xf_Post)),xf_Inf(xf_Xh))<>0 Then

      Response.Write ""

      Response.Write "非法操作!系統做了如下記錄↓
    "

      Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"
    "

      Response.Write "操作時間:"&Now&"
    "

      Response.Write "操作頁面:"&Request.ServerVariables("URL")&"
    "

      Response.Write "提交方式:POST
    "

      Response.Write "提交參數:"&xf_Post&"
    "

      Response.Write "提交數據:"&Request.Form(xf_Post)

      Response.End

      End If

      Next

      Next

      End If

      If Request.QueryString<>"" Then

      For Each xf_Get In Request.QueryString

      For xf_Xh=0 To Ubound(xf_Inf)

      If Instr(LCase(Request.QueryString(xf_Get)),xf_Inf(xf_Xh))<>0 Then

      Response.Write ""

      Response.Write "非法操作!系統已經給你做了如下記錄↓
    "

      Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"
    "

      Response.Write "操作時間:"&Now&"
    "

      Response.Write "操作頁面:"&Request.ServerVariables("URL")&"
    "

      Response.Write "提交方式:GET
    "

      Response.Write "提交參數:"&xf_Get&"
    "

      Response.Write "提交數據:"&Request.QueryString(xf_Get)

      Response.End

      End If

      Next

      Next

      End If

      %>

      同樣,再將cookies防一下,代碼加在數據提交頁。

      if(Request.Cookies["uid"]!=null)

      {

      uid=Request.Cookies["uid"].value;

      isnumeric cooidesID = new isnumeric();

      //這是一個類

      if (cooidesID.reIsnumeric(ruid))

      //如果是數字就運行下面的

      {

      string str="select * from userTable where id="+uid;

      ...

      }

      }

      3、 JSP防注入過濾代碼

      

    75381 主站蜘蛛池模板: 无码专区人妻系列日韩精品| 欧美性猛交xxxx乱大交3| 国产精品无码久久久久| 久久无码精品一区二区三区| 精品少妇人妻AV一区二区三区| 国产高清一区二区三区免费视频| 久久精品成人欧美大片| 短篇丝袜乱系列集合嘉嘉| 国产精品99久久久精品无码| 中文字幕一区二区三区视频在线| 欧美综合自拍亚洲综合图| 国产午夜无码精品免费看动漫| free性俄罗斯| 日韩在线一区二区三区| 免费a级毛片无码鲁大师| 黄色永久免费网站| 女人被两根一起进3p在线观看| 亚洲乱码一区二区三区在线观看 | 国产精品入口在线看麻豆| 中韩高清无专码区2021曰| 欧美激情一区二区三区在线| 国产乱人伦偷精品视频| 91啪国产在线| 成人看的一级毛片| 亚洲一卡二卡三卡四卡无卡麻豆| 精品免费人成视频APP| 国产欧美日韩在线观看无需安装| xvdeviosbbc黑人| 日韩精品欧美一区二区三区| 人妻丰满熟妇无码区免费| 音影先锋在线资源| 国产超碰人人爽人人做人人添| 中文字幕免费在线看| 欧美videosdesexo肥婆| 免费一级毛片无毒不卡| 韩国理伦片在线观看手机版| 国产视频一区在线| 一区二区三区在线免费看| 日韩a在线观看免费观看| 亚洲欧美成人永久第一网站| 精品少妇人妻AV一区二区三区 |