国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 魔法引用magic_quotes_gpc()函數用法

2024-09-04 11:49:13
字體:
來源:轉載
供稿:網友

magic_quotes_gpc是用來判斷我們apache是不是開啟了自動轉譯功能了,為了讓各位更好的理解魔法引用magic_quotes_gpc()函數用法下面來給各位總結與舉一些例子.

magic_quotes_gpc的設定值將會影響通過Get/Post/Cookies獲得的數據.

這兩天接入百度SDK處理支付回調時碰到了簽名通不過的情況,簽名規則很簡單,md5(transdata + appkey) 和 接受到的sign比較,請求方式為POST.

于是乎通過php://input記錄下了原始數據和記錄下了POST數據,通過日志查看到結果類似如下:

  1. //原始數據 
  2. transdata={"exorderno":"2014031223","transid":"05514312314566"
  3. "waresid":1,"appid":"1","feetype":0,"money":1,"count":1,"result":0, 
  4. "transtype":0,"transtime":"2014-03-12 15:33:19","paytype":401}&sign=xxxx 
  5.   //開源軟件:Vevb.com 
  6. //post數據 
  7. [transdata] => {/"exorderno/":/"2014031223452345234/",/"transid/"
  8. /"05514031215312314566/",/"waresid/":1,/"appid/":/"1/",/"feetype/":0, 
  9. /"money/":1,/"count/":1,/"result/":0,/"transtype/":0, 
  10. /"transtime/":/"2014-03-12 15:33:19/",/"paytype/":401} 
  11. [sign] => xxxx 

可見接收到post數據時引號自動轉義了,而程序上未做到該操作,很容易就聯想到服務器的魔法引用打開了,查看.

php版本

PHP 5.2.14 (cli) (built: Jun 7 2012 20:39:40)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

例子說明:

  1. $data1 = $_POST['aaa'];  
  2.  
  3.  $data2 = implode(file('1.txt'));  
  4.  
  5.  if(get_magic_quotes_gpc()){  
  6.  
  7.     //把數據$data1直接寫入<a href="/database/database.html" target="_blank">數據庫</a> (自動轉譯)  
  8.  
  9.  }else{  
  10.  
  11.     $data1 = addslashes($data1);  
  12.  
  13.     //把數據$data1寫入數據庫,用函數(addslashes()轉譯)  
  14.  
  15.  }  
  16.  
  17.  if(get_magic_quotes_runtime()){  
  18.  
  19.     //把數據$data2直接寫入數據庫(自動轉譯)  
  20.  
  21.  //從數據庫讀出的數據要經過一次stri<a href="/fw/photo.html" target="_blank">ps</a>lashes()之后輸出,stripslashes()的作用是去掉:/ ,和addslashes()作用相反  
  22.  
  23.  }else{  
  24.  
  25.     $data2 = addslashes($data2);  
  26.  
  27.      //把數據$data2寫入數據庫  
  28.  
  29.      
  30.  
  31.  //從數據庫讀出的數據直接輸出  
  32.  

最關鍵的區別是就是上面提到的2點:他們針對的處理對象不同,magic_quotes_gpc的設定值將會影響通過Get/Post/Cookies獲得的數據,注意的是沒有 set_magic_quotes_gpc()這個函數,就是不能在程序里面設置magic_quotes_gpc的值.

魔法引用5.4才刪掉的,那極有可能這里打開在,查看配置文件確實如此,根據條件開關strip一下即可.

問題很快就解決了,但如果不熟悉這塊可能還需要點時間,之前在CI的全局參數xss設置中有類似的地方,當進行全局處理之后對于這種接口、密鑰可能會帶來一些影響,所以全局參數過濾需要注意點.

矛盾可分為主要矛盾和次要矛盾,我們在程序設計中也常有這種思想,改最少的地方,過濾大部分參數,少數特殊處理,php中把它去掉了并不說明它沒有存在的價值,有了魔法引用少了很多注入,但同時也讓一些東西變得混亂,哪里需要轉義,要怎么轉義,通過什么方式來轉義等等,客觀看待,汲取中間有用的部分.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 积石山| 平塘县| 达州市| 德格县| 太原市| 那曲县| 镇巴县| 牡丹江市| 鸡泽县| 郸城县| 馆陶县| 永清县| 札达县| 伽师县| 德兴市| 郴州市| 永平县| 三亚市| 汾西县| 志丹县| 大悟县| 江门市| 靖宇县| 固镇县| 哈巴河县| 承德市| 双桥区| 永善县| 江油市| 定襄县| 宝清县| 巨野县| 乌什县| 西和县| 夹江县| 临湘市| 北安市| 石阡县| 台东市| 绥德县| 奉贤区|