PHP入門【一】$_SERVER

來源:互聯網
上載者:User

標籤:school   類型   參數   空格   sig   字元   程式   服務   文檔   

這幾天要個同事寫php的程式,就開始學習了PHP ,基礎文法不用說了語言都是基本相通的,只是有若類型和強型別的區別(聲明資料類型)

把現在看到的感覺有用的記錄一下。

$_SERVER[‘PHP_SELF‘] 返回當前執行指令碼的檔案名稱。$_SERVER[‘GATEWAY_INTERFACE‘]    返回伺服器使用的 CGI 規範的版本。$_SERVER[‘SERVER_ADDR‘]    返回當前運行指令碼所在的伺服器的 IP 位址。$_SERVER[‘SERVER_NAME‘]    返回當前運行指令碼所在的伺服器的主機名稱(比如 www.w3school.com.cn)。$_SERVER[‘SERVER_SOFTWARE‘]    返回伺服器標識字串(比如 Apache/2.2.24)。$_SERVER[‘SERVER_PROTOCOL‘]    返回請求頁面時通訊協定的名稱和版本(例如,“HTTP/1.0”)。$_SERVER[‘REQUEST_METHOD‘]    返回訪問頁面使用的要求方法(例如 POST)。$_SERVER[‘REQUEST_TIME‘]    返回請求開始時的時間戳記(例如 1577687494)。$_SERVER[‘QUERY_STRING‘]    返回查詢字串,如果是通過查詢字串訪問此頁面。$_SERVER[‘HTTP_ACCEPT‘]    返回來自當前請求的要求標頭。$_SERVER[‘HTTP_ACCEPT_CHARSET‘]    返回來自當前請求的 Accept_Charset 頭( 例如 utf-8,ISO-8859-1)$_SERVER[‘HTTP_HOST‘]    返回來自當前請求的 Host 頭。$_SERVER[‘HTTP_REFERER‘]    返回當前頁面的完整 URL(不可靠,因為不是所有使用者代理程式都支援)。$_SERVER[‘HTTPS‘]    是否通過安全 HTTP 協議查詢指令碼。$_SERVER[‘REMOTE_ADDR‘]    返回瀏覽當前頁面的使用者的 IP 位址。$_SERVER[‘REMOTE_HOST‘]    返回瀏覽當前頁面的使用者的主機名稱。$_SERVER[‘REMOTE_PORT‘]    返回使用者機器上串連到 Web 服務器所使用的連接埠號碼。$_SERVER[‘SCRIPT_FILENAME‘]    返回當前執行指令碼的絕對路徑。$_SERVER[‘SERVER_ADMIN‘]    該值指明了 Apache 伺服器設定檔中的 SERVER_ADMIN 參數。$_SERVER[‘SERVER_PORT‘]    Web 服務器使用的連接埠。預設值為 “80”。$_SERVER[‘SERVER_SIGNATURE‘]    返回伺服器版本和虛擬機器主機名。$_SERVER[‘PATH_TRANSLATED‘]    當前指令碼所在檔案系統(非主目錄)的基本路徑。$_SERVER[‘SCRIPT_NAME‘]    返回當前指令碼的路徑。$_SERVER[‘SCRIPT_URI‘]    返回當前頁面的 URI。

 

在使用$_SERVER["PHP_SELF"]很容易攻擊者造成反射型XSS,

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

正常會轉化為:

<form method="post" action="test_form.php">

駭客在URL中輸入:

http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert(‘hacked‘)%3C/script%3E

這樣PHP擷取會變成:

<form method="post" action="test_form.php"/><script>alert(‘hacked‘)</script>

解決辦法:

使用

htmlspecialchars()

什麼是 htmlspecialchars() 函數?
htmlspecialchars() 函數把特殊字元轉換為 HTML 實體。這意味著 < 和 > 之類的 HTML 字元會被替換為 &lt; 和 &gt; 。這樣可防止攻擊者通過在表單中注入 HTML 或 JavaScript 代碼(跨網站指令碼攻擊)對代碼進行利用。

在使用者提交該表單時,我們還要做兩件事:

  1. (通過 PHP trim() 函數)去除使用者輸入資料中不必要的字元(多餘的空格、定位字元、換行)
  2. (通過 PHP stripslashes() 函數)刪除使用者輸入資料中的反斜線(\)

PHP入門【一】$_SERVER

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.