日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP 中get_magic_quotes_gpc()函数说明

發布時間:2024/9/19 php 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP 中get_magic_quotes_gpc()函数说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
get_magic_quotes_gpc函數是一個用來判斷是否為用戶提供的數據增加斜線了,這個在php.ini配置文件中哦,本文將介紹一下get_magic_quotes_gpc()函數說明。

get_magic_quotes_gpc函數介紹

取得 PHP 環境變數 magic_quotes_gpc 的值,屬于 PHP 系統功能。

語法: long get_magic_quotes_gpc(void);

返回值: 長整數

本函數取得 PHP 環境配置的變量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示關閉本功能;返回 1 表示本功能打開。

當 magic_quotes_gpc 打開時,所有的 ‘ (單引號), ” (雙引號), (反斜線) and 空字符會自動轉為含有反斜線的溢出字符。

magic_quotes_gpc設置是否自動為GPC(get,post,cookie)傳來的數據中的'”加上反斜線。可以用get_magic_quotes_gpc()檢測系統設置。

如果沒有打開這項設置,可以使用addslashes()函數添加,它的功能就是給數據庫查詢語句等的需要在某些字符前加上了反斜線。

這些字符是單引號(')、雙引號(”)、反斜線()與 NUL(NULL 字符)。

默認情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes()。

不要對已經被 magic_quotes_gpc 轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。

利用 get_magic_quotes_gpc()預防數據庫攻擊的正確做法

代碼如下

  • <?php
  • function check_input($value)
  • {
  • // 去除斜杠
  • if (get_magic_quotes_gpc())
  • {
  • $value = stripslashes($value);
  • }
  • // 如果不是數字則加引號
  • if (!is_numeric($value))
  • {
  • $value = “‘” . mysql_real_escape_string($value) . “‘”;
  • }
  • return $value;
  • }
  • $con = mysql_connect(“localhost”, “hello”, “321″);
  • if (!$con)
  • {
  • die(‘Could not connect: ‘ . mysql_error());
  • }
  • // 進行安全的 SQL
  • $user = check_input($_POST['user']);
  • $pwd = check_input($_POST['pwd']);
  • $sql = “SELECT * FROM users WHERE
  • user=$user AND password=$pwd”;
  • mysql_query($sql);
  • mysql_close($con);
  • ?>

  • 總結如下:

    1. 對于magic_quotes_gpc=on的情況,

    我們可以不對輸入和輸出數據庫的字符串數據作

    addslashes()和stripslashes()的操作,數據也會正常顯示。

    如果此時你對輸入的數據作了addslashes()處理,

    那么在輸出的時候就必須使用stripslashes()去掉多余的反斜杠。

    2. 對于magic_quotes_gpc=off 的情況

    必須使用addslashes()對輸入數據進行處理,但并不需要使用stripslashes()格式化輸出

    因為addslashes()并未將反斜杠一起寫入數據庫,只是幫助mysql完成了sql語句的執行

    以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

    總結

    以上是生活随笔為你收集整理的PHP 中get_magic_quotes_gpc()函数说明的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。