簡體   English   中英

如何防止用戶使用ftp上傳php文件?

[英]How can prevent user from uploading php files with ftp?

我已經在Ubuntu桌面上安裝了webmin,並使用shell / bin / rbash創建了一個用戶,以便用戶可以使用ftp將文件上傳到服務器。 現在,我希望能夠阻止用戶將php文件上傳到服務器。 我試圖創建一個.htaccess文件,並且測試了許多不同的.htaccess代碼,但該代碼無法正常工作...有人可以提示我如何解決該問題嗎?

謝謝

我設法通過在proftpd.conf文件中輸入PathDenyFilter "(\\\\.php)$"來解決我的問題。

對於直接問題的回答,可以采用兩種方法:

  1. 您希望用戶只允許通過FTP提交/下載文件,那么您應該將FTP文件夾放在webroot之外。 這樣就無法執行任何類型的腳本。
  2. 您希望用戶允許通過FTP提交文件,並允許它們通過Web查看。 (聽起來好像是您當前的情況)。 然后,要禁用PHP執行,請使用以下代碼在FTP上傳目錄.htaccess文件中插入
<IfModule mod_php5.c>
php_flag engine 0
</IfModule>

AddHandler cgi-script .php .phtml .php3 .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

我從Wordfence WordPress插件上傳目錄htaccess中獲取了此代碼,並假設您擁有Apache(如果您提到htaccess)。 還是您有Nginx? 您選擇Ubuntu Desktop,這台機器可以在公共互聯網上使用嗎?

恕我直言,我不建議允許用戶允許在webroot內部上傳文件,因為他們可以上傳任何未經驗證的文件。 僅需執行1個惡意腳本腳本即可為您的服務器創建危險的后門。 取而代之的是,我建議使用PHP上傳,在那里您可以檢查它是否為真實圖像(不是擴展名為image的php文件),檢查大小等。

如果您需要允許上傳大型文件(通過FTP)並顯示為現有文件,請選擇我的第一個選項,然后使用PHP掃描該目錄並將其列出。 您可以使用RecursiveDirectoryIterator做到這一點

暫無
暫無

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

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