2011-10-08 89 views
3

只是隨意的偏執狂。比方說,我們有一個的index.php:「歡迎」是否可以跳過PHP代碼?

<?php 
    exit('Forbidden!'); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html> 
    <title>Can you see me?</title> 
    <script language="javascript" type="text/javascript"> 
    alert("Welcome!"); 
    </script> 
    <p>You got me.</p> 
</html> 

外部用戶莫名其妙能達到信息?爲什麼是/不是?

任何手段都有效(例如查看頁面的源代碼)。

預先感謝您!

回答

6

PHP代碼在這裏可以跳過的唯一方法是如果Web服務器配置錯誤,並且無法通過將文件傳遞給PHP解釋器來處理.php文件。相反,它會以HTML格式輸出,並且通過查看頁面源代碼可以看到代碼。

只要該文件作爲PHP腳本處理並且PHP代碼被解析,它就會正確執行。沒有辦法規避exit()

+0

我知道我正在評論一個鬼,但 - 如果在服務器上有一個** BACKUP **副本,並帶有一個類似'.php〜'或'.php#'的擴展名,那麼聰明人可以要求備份文件並查看其內容。 –

2

不,頁面將只顯示「Forbidden!」,如果PHP解釋器已啓用。

但是,如果未啓用該文件擴展名,則整個源代碼將顯示(包括PHP源代碼),但您可以輕鬆驗證。

+0

絕對正確。 – stivlo

1

通常不是!除非該頁面以某種方式緩存,並且在頁面緩存後添加了exit命令。

1

從文檔頁面exit

輸出一個消息並終止當前腳本

如果腳本被終止,則沒有辦法一個用戶都不能訪問的網頁的HTML部分。

0

不,他們將不能夠

終止腳本的執行。即使退出()被調用關機功能和對象的析構函數總是會被執行。php exit