簡體   English   中英

如何防止用戶看到“包含文件”?

[英]How can I prevent “include files” from being seen by users?

我網站的主文件(index.php)代碼在這里:

<?php 
include 'header.php';
include 'sidebar.php';
include 'content.php';
include 'footer.php';
?>

但我不希望任何用戶通過編寫“ www.domain.com/header.php”來查看這些包含文件。 我應該在這些文件中插入PHP代碼還是可行的?

您有幾種選擇。

  1. 將文件保留在webroot之外(因此它們不會自動獲取自己的URI)
  2. 配置您的Web服務器,使其拒絕為其提供服務
  3. 測試是否設置了變量/常量,然后在允許包含變量/常量的每個文件中進行設置。 如果未設置,則exit

這是適合您的PHP。

if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}

簡而言之,如果調用文件本身,則退出執行。

來源: http//thephpcode.blogspot.se/2009/07/creating-include-only-php-files.html

您可以在主文件中定義一個常量,並在包含的文件中使用它來確定是否確實包含了它們:

index.php

<?php
define('REALLY_INCLUDED', true);
include'header.php';

header.php

<?php
if(!defined('REALLY_INCLUDED') || !REALLY_INCLUDED) {
    exit();
}
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM