重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章主要為大家展示了“PHP如何防止直接訪(fǎng)問(wèn).php 文件”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP如何防止直接訪(fǎng)問(wèn).php 文件”這篇文章吧。
為了保證我們用 PHP 寫(xiě)的 API 的安全性要禁止除了接口外的訪(fǎng)問(wèn)方式.
比如我們的項(xiàng)目為 example, 其下有文件夾 dir1、有個(gè)接口文件 api.php. 結(jié)構(gòu)為: 輸入圖片說(shuō)明
這時(shí)候我們要求只能通過(guò) example/api.php 來(lái)調(diào)用file.php里的服務(wù),不能直接通過(guò)example/dir1/file.php來(lái)訪(fǎng)問(wèn).
在 php 里有這樣一個(gè)變量$_SERVER,這是個(gè)數(shù)組變量, 里面有各種鍵值對(duì), 具體的可以搜索一下資料. 那么我們現(xiàn)在可以通過(guò)$_SERVER里的SCRIPT_NAME來(lái)獲取腳本名稱(chēng). $_SERVER['SCRIPT_NAME'],其值會(huì)是類(lèi)似 xxx/api.php,那么我們就可以通過(guò)判斷訪(fǎng)問(wèn)鏈接里是否含有api.php來(lái)判斷這個(gè)訪(fǎng)問(wèn)是否為合法的訪(fǎng)問(wèn), 如果合法則繼續(xù)執(zhí)行, 不合法則阻斷.
具體代碼如下:
if(strpos($_SERVER['SCRIPT_NAME'], 'api.php') === false){ echo "error"; exit; }
在 file.php里的開(kāi)頭添加上以上代碼即可.
以上是“PHP如何防止直接訪(fǎng)問(wèn).php 文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!