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

歡迎訪問 生活随笔!

生活随笔

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

php

server php self_PHP 使用 $_SERVER[''PHP_SELF''] 获取当前页面地址及其安全性问题[转载]...

發(fā)布時間:2024/1/23 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 server php self_PHP 使用 $_SERVER[''PHP_SELF''] 获取当前页面地址及其安全性问题[转载]... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

PHP $_SERVER['PHP_SELF']

$_SERVER['PHP_SELF'] 表示當前 php 文件相對于網(wǎng)站根目錄的位置地址,與 document root 相關(guān)。

假設(shè)我們有如下網(wǎng)址,$_SERVER['PHP_SELF']得到的結(jié)果分別為:http://www.5idev.com/php/ :/php/index.php

http://www.5idev.com/php/index.php :/php/index.php

http://www.5idev.com/php/index.php?test=foo :/php/index.php

http://www.5idev.com/php/index.php/test/foo :/php/index.php/test/foo

因此,可以使用 $_SERVER['PHP_SELF'] 很方便的獲取當前頁面的地址:$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

以上面的地址為例,得到的結(jié)果如下:http://www.5idev.com/php/index.php

上面是簡單獲取 http 協(xié)議的當前頁面 URL ,只是要注意該地址是不包含 URL 中請求的參數(shù)(?及后面的字串)的。如果希望得到包含請求參數(shù)的完整 URL 地址,請使用 $_SERVER['REQUEST_URI'] 。

PHP $_SERVER['PHP_SELF'] 安全性

由于利用 $_SERVER['PHP_SELF'] 可以很方便的獲取當前頁面地址,因此一些程序員在提交表單數(shù)據(jù)到當前頁面進行處理時,往往喜歡使用如下這種方式:

假設(shè)該頁面地址為:http://www.5idev.com/php/index.php

訪問該頁面,得到的表單 html 代碼如下:

這段代碼是正確的,但是當訪問地址變成:http://www.5idev.com/php/index.php/test/foo

頁面正常執(zhí)行了,表單 html 代碼變成:

顯然這段代碼不是我們期望的,攻擊者可以在 URL 后面隨意加上攻擊代碼。要解決該問題,可以:使用 htmlentities($_SERVER['PHP_SELF']) 替代 $_SERVER['PHP_SELF'],讓 URL 中可能的惡意代碼轉(zhuǎn)換為用于顯示的 html 代碼而無法執(zhí)行。

可以的條件下,使用 $_SERVER['SCRIPT_NAME'] 或 $_SERVER['REQUEST_URI'] 替代 $_SERVER['PHP_SELF']

在公共代碼里將 $_SERVER['PHP_SELF'] 進行重寫:$phpfile = basename(__FILE__);

$_SERVER['PHP_SELF'] = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], $phpfile)).$phpfile;

總結(jié)

以上是生活随笔為你收集整理的server php self_PHP 使用 $_SERVER[''PHP_SELF''] 获取当前页面地址及其安全性问题[转载]...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。