為了確保我們用 PHP 寫的 API 的安全性,要禁止除了介面外的存取方式。
例如我們的專案為 example, 其下有資料夾 dir1、有個介面檔 api.php。結構為:
這時候我們要求只能透過example/api.php 來呼叫file.php裡的服務,不能直接透過example/dir1/file .php來訪問。
在 php 裡有這樣一個變數$_SERVER,這是個數組變量,裡面有各種鍵值對,具體的可以搜尋一下資料。那我們現在可以透過$_SERVER裡的SCRIPT_NAME來取得腳本名稱。 $_SERVER['SCRIPT_NAME'],其值會是類似xxx/api.php,那麼我們就可以透過判斷存取連結是否含有api.php,來判斷這個訪問是否為合法的訪問,如果合法則繼續執行,不合法則阻斷。
具體程式碼如下:
if(strpos($_SERVER['SCRIPT_NAME'], 'api.php') === false){ echo "error"; exit; }
在 file.php裡的開頭加入以上程式碼即可。
以上內容僅供參考!
更多相關問題請造訪php中文網:PHP影片教學
以上是php怎樣禁止使用者直接存取文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!