2009-10-13 185 views

回答

21

沒有,除非

  • 有一個服務器配置錯誤
  • 有一個不好的回聲/某處
+3

你可以舉一個不好的包含或回聲的例子嗎? – Mj1992 2012-11-28 13:51:28

11

不可以,除非您在實際使用它的地方迴應它們。

2

包括如果您在網絡服務器設置爲服務,而不是解析你的PHP是。但那時客戶不會工作。因此,除了任何安全漏洞,答案是否定的。

3

不,但你應該採取一切措施來防止它。

你應該在你的服務器工作目錄(比如/ www)下面的目錄中設置你的敏感代碼(heck,爲什麼不是全部?),這樣如果服務器搞砸了,它將不能顯示你的代碼到世界上,因爲那個代碼將被包含在PHP中,而不是首先工作。

6

使用包括從www服務目錄下面或外面。 (can not +1 yet for Frankie)

不要爲你的http目錄使用符號鏈接。我有意使用它來根據用戶請求路徑顯示源代碼和執行,但需要httpd.conf更改(或錯誤配置),並且可以在httpd.conf中顯式禁用。

如果允許使用fopen下載文件,請不要傳遞用戶創建的任何內容,或者他們可以弄清楚如何讓它抓住任何可以找到的文件。 考慮:

fopen('reports/' . $_GET['blah']); 
,其中用戶通過在「../index.php」

1

號假設您已經安裝了一個L/UAMP服務器正確,或者不打印出來(回聲, print_r等)以及代碼的內容,PHP將被處理,並且其輸出的邏輯或HTML將在頁面上使用,不可見。

N.B.如果目錄或適當的.htacess文件中沒有'索引',Apache服務器將顯示目錄中的文件列表,可以下載和查看這些文件。

+0

是的,但即使你下載它們,你將看到的唯一東西就是生成的HTML。你不會看到PHP代碼。 – galdikas 2013-09-06 10:40:14

0

它發生的一個錯誤就是粘貼一個PHP字符串內使用PHP的標籤,例如:

$string = "This is the answer: <s><?php echo $answer; ?></s>"; 
echo $string; 

的人做了一個按Ctrl + C和Ctrl +的一些信息v應沿串打印,但編碼員忘了通過分心去除php標籤。

相關問題