欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql注入與轉(zhuǎn)義的php函數(shù)代碼

 更新時(shí)間:2013年06月17日 10:37:43   作者:  
這篇文章主要介紹了sql的注入與轉(zhuǎn)義代碼,其實(shí)大家在使用過程中多參考dedecms 帝國(guó) phpcms的代碼,相信你的代碼更安全

sql注入:

  正常情況下:

    delete.php?id=3;
    $sql = 'delete from news where id = '.$_GET['id'];

  惡意情況:

    delete.php?id=3 or 1;
    $sql = 'delete from news where id = 3 or 1';  -------如此執(zhí)行后,所有的記錄將都被刪除

   應(yīng)該采取相關(guān)措施。。。比如用之前先判斷是否是數(shù)字等等。

要使自己相信,從客戶端傳來的信息永遠(yuǎn)是不可靠的?。?/P>

轉(zhuǎn)義:

  有時(shí)候從客戶端傳來的數(shù)據(jù),可能惡意包含些特殊的字符,比如單引號(hào)、斜杠等,所以需要轉(zhuǎn)義,轉(zhuǎn)義成普通的字符,此時(shí)就要用到string addslashes ( string $str ),這個(gè)函數(shù)可以對(duì)某個(gè)變量進(jìn)行轉(zhuǎn)義。但是,如果對(duì)數(shù)組里的元素進(jìn)行轉(zhuǎn)義,就用foreach循環(huán)數(shù)組,如下:

復(fù)制代碼 代碼如下:

  foreach($_POST as $k=>$v) {
      if(is_string($v)) {
        $_POST[$k] = addslashes($v);
      }
  }

  但是如果數(shù)組中還包含數(shù)組,那就要遞歸進(jìn)行轉(zhuǎn)義了,此時(shí)用到

    array_walk_recursive(array &$input , callback $funcname [, mixed $userdata ])

             將用戶自定義函數(shù) funcname 應(yīng)用到 array 數(shù)組中的每個(gè)單元。本函數(shù)會(huì)遞歸到更深層的數(shù)組中去。典型情況下 funcname 接受兩個(gè)參數(shù)。input 參數(shù)的值作為第一個(gè),鍵名作為第二個(gè)。如果提供了可選參數(shù) userdata,將被作為第三個(gè)參數(shù)傳遞給 callback funcname。成功時(shí)返回 TRUE, 或者在失敗時(shí)返回 FALSE

      也就是說:用自定義的函數(shù),至少要能接收兩個(gè)參數(shù),而addslashes()只能接收一個(gè)參數(shù)所以自定義一個(gè)函數(shù)如下:

復(fù)制代碼 代碼如下:

      function a(&$v,$k){
        $v=addslashes($v);
      }
      array_walk_recursive(&$arr,'a');

 系統(tǒng)自動(dòng)轉(zhuǎn)義:

  PHP中,有一個(gè)魔術(shù)引號(hào)的概念,如何打開?答:在PHP.ini中,magic_quotes_gpc=On;重啟apache即可

  魔術(shù)引號(hào)被打開后,系統(tǒng)會(huì)自動(dòng)對(duì)$_GET,$_POST,$_COOKIE數(shù)據(jù)進(jìn)行轉(zhuǎn)義,在不知情的情況下,再次進(jìn)行手動(dòng)轉(zhuǎn)義的話,就轉(zhuǎn)多了,要想合理的進(jìn)行轉(zhuǎn)義,就要首先判斷,魔術(shù)符號(hào)是否已經(jīng)打開了,用magic_quotes_gpc()進(jìn)行判斷,不需要傳值,關(guān)閉返回0,關(guān)閉返回1

復(fù)制代碼 代碼如下:

  if(!get_magic_quotes_gpc()) {  // 如果魔術(shù)引號(hào)沒開

      function _addslashes(&$v,$k) {
          $v = addslashes($v);
      }
      array_walk_recursive(&$_GET,'_addslashes');
      array_walk_recursive(&$_POST,'_addslashes');
      array_walk_recursive(&$_COOKIE,'_addslashes');
  }

相關(guān)文章

  • php中cookie實(shí)現(xiàn)二級(jí)域名可訪問操作的方法

    php中cookie實(shí)現(xiàn)二級(jí)域名可訪問操作的方法

    這篇文章主要介紹了php中cookie實(shí)現(xiàn)二級(jí)域名可訪問操作的方法,對(duì)比了常用的setcookie函數(shù)用法,并給出了一個(gè)設(shè)置cookie的類文件來實(shí)現(xiàn)這一功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • 基于PHP創(chuàng)建Cookie數(shù)組的詳解

    基于PHP創(chuàng)建Cookie數(shù)組的詳解

    本篇文章是對(duì)在PHP中創(chuàng)建Cookie數(shù)組的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • PHP include_path設(shè)置技巧分享

    PHP include_path設(shè)置技巧分享

    當(dāng)時(shí)候函數(shù)include(),require(),fopen_with_path()函數(shù)來尋找文件時(shí)候.在不設(shè)置include_path的情況下,這些函數(shù)打開文件時(shí)候默認(rèn)的是以web根目錄去尋找.當(dāng)設(shè)置include_path以后,這些php函數(shù)就會(huì)先在指定的include_path目錄下面去搜索尋找
    2011-07-07
  • ThinkPHP實(shí)現(xiàn)遞歸無級(jí)分類——代碼少

    ThinkPHP實(shí)現(xiàn)遞歸無級(jí)分類——代碼少

    這篇文章通過一段簡(jiǎn)短的代碼實(shí)現(xiàn)了ThinkPHP實(shí)現(xiàn)遞歸無級(jí)分類,,需要的朋友可以參考下
    2015-07-07
  • PHP7.1新功能之Nullable Type用法分析

    PHP7.1新功能之Nullable Type用法分析

    這篇文章主要介紹了PHP7.1新功能之Nullable Type用法,結(jié)合實(shí)例形式較為詳細(xì)的對(duì)比分析了Nullable Type類型操作的使用技巧,需要的朋友可以參考下
    2016-09-09
  • 對(duì)text數(shù)據(jù)類型不支持代碼頁轉(zhuǎn)換 從: 1252 到: 936

    對(duì)text數(shù)據(jù)類型不支持代碼頁轉(zhuǎn)換 從: 1252 到: 936

    錯(cuò)誤的提示同樣是不能從text的轉(zhuǎn)換問題:這主要是由于數(shù)據(jù)庫(kù)在設(shè)計(jì)的時(shí)候的數(shù)據(jù)類型存在Text——而我們采用的是中文操作系統(tǒng)。檢查數(shù)據(jù)庫(kù)的腳本,修改Text為ntext。支持unicode。
    2011-04-04
  • 解析smarty 截取字符串函數(shù) truncate的用法介紹

    解析smarty 截取字符串函數(shù) truncate的用法介紹

    本篇文章是對(duì)smarty 截取字符串函數(shù) truncate的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 繼續(xù)收藏一些PHP常用函數(shù)

    繼續(xù)收藏一些PHP常用函數(shù)

    方便以后制作php程序,直接拿來就可以用了,其實(shí)一些好的函數(shù)都在一些較成熟的cms系統(tǒng)中都有,例如dedecms,帝國(guó)cms,phpcms等,不論是gb2312的還是utf8格式的都有。
    2008-08-08
  • PHP調(diào)用Linux命令權(quán)限不足問題解決方法

    PHP調(diào)用Linux命令權(quán)限不足問題解決方法

    這篇文章主要介紹了PHP調(diào)用Linux命令權(quán)限不足問題解決方法,本文是解決項(xiàng)目問題總結(jié)而來,通過修改sudo配置文件解決無權(quán)限執(zhí)行命令問題,需要的朋友可以參考下
    2015-02-02
  • PHP利用header跳轉(zhuǎn)失效的解決方法

    PHP利用header跳轉(zhuǎn)失效的解決方法

    這篇文章主要介紹了PHP利用header跳轉(zhuǎn)失效的解決方法,歸納了這類問題的注意事項(xiàng),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10

最新評(píng)論