我正在製作一個網站,允許用戶上傳任何類型的文件。所有文件都存儲在'文件/'文件夾中。我希望用戶能夠查看並下載該文件夾中的任何文件,但不能執行它們。我們都知道,某些文件(如JPG文件)很容易:瀏覽器具有內置系統來顯示它們。允許用戶查看或下載文件,但不能執行它們
其他文件(如PDF文件)無法直接顯示,因此瀏覽器會提示用戶下載屏幕。這也很好。
但是,其他文件(如PHP文件)會造成問題。當我打開一個這樣的文件時,如果我不小心,它會被執行。例如,如果該文件包含
<?php echo 'ok'; ?>
然後當我去「文件/ myphpfile.php」,我所看到的僅僅是「OK」,並將該文件的不是內容。這不僅會發生在PHP文件中,我猜想,也會發生在我的服務器可以執行的任何其他文件類型(例如ASP文件,我想)。
我需要的是防止用戶執行這些文件,以便當他們進入'files/myphpfile.php'時,他們要麼看到文件內容,要麼瀏覽器提示他們下載屏幕。理想情況下,這將是一個通用的解決方案,不需要我構建服務器可執行的每種文件類型的列表。
對我來說,最合理的方法是將文件權限設置爲644,以便用戶只能讀取文件。但是這樣做後,PHP文件不斷執行。
您可以隨時將擴展名更改爲'filename.php.txt'? – andrewsi
執行你的意思是被PHP解析? – PeeHaa
@PeeHaa通過執行我的意思是如果文件有<?php echo'ok'; ?>,然後當我打開它時,我看到'ok'。 – Sophivorus