我正在將我的文件(pdf,doc,flv等)加載到緩衝區中並使用腳本將它們提供給我的用戶。我需要我的腳本能夠訪問該文件,但不允許直接訪問它。什麼是達到這個目標的最好方法?我應該使用我的權限執行某些操作還是使用.htaccess鎖定目錄?阻止通過http直接訪問文件,但允許php腳本訪問
回答
最安全的方法是將您想要保存的文件放在Web根目錄之外,就像Damien建議的那樣。這是有效的,因爲Web服務器遵循本地文件系統特權,而不是它自己的特權。
但是,有很多託管公司只允許您訪問Web根目錄。要仍然阻止對這些文件的HTTP請求,請使用阻止所有通信的.htaccess文件將它們自己放到一個目錄中。例如,
Order deny,allow
Deny from all
您的Web服務器,因此服務器端語言,仍然可以閱讀他們,因爲該目錄的本地權限允許Web服務器來讀取並執行文件。
乾杯。
我已經使用此內部音頻文件夾,但它是停止我的音頻播放器播放音頻。我正在使用聲音管理器2播放音頻。是否有任何解決方法只允許聲音管理器播放該音頻文件,但是不能停止其他直接訪問? – sonill 2013-07-29 06:07:40
@sonill - 您可以將某些IP列入白名單以便能夠訪問這些目錄。例如,添加一個帶有「Allow from 127.0.0.1」的新行將允許您的服務器(包括任何服務器端代碼)訪問該目錄中的文件。有關這些位的更多文檔可在http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html#allow – 2013-07-30 16:38:21
「但是,有很多託管公司只允許您訪問Web根目錄。 「爲什麼這些公司不能將Web根放在比FTP根低一級的地方?他們對PHP的工作方式沒有任何知識(或者更可能是一種監督),還是隻關心自己的安全和金錢?哦,只需選擇一家公司,實際上會對您網站的安全性產生極大的影響。 – FluorescentGreen5 2017-03-30 04:58:18
這些文件與PHP腳本在同一臺服務器上嗎?如果是這樣,只需將文件保留在Web根目錄下,並確保您的PHP腳本對於存儲的任何位置都具有讀取權限。
這就是我阻止從URL直接訪問我的ini文件的方式。將以下代碼粘貼到根目錄下的.htaccess
文件中。 (無需創建額外的文件夾)
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
我settings.ini
文件是根,沒有這個代碼是可訪問的www.mydomain.com/settings.ini
如果您有機會獲得你的httpd。 conf文件(在ubuntu中它位於/ etc/apache2目錄中),你應該添加與你在特定目錄中的.htaccess
文件相同的行。這是(例如):
ServerName YOURSERVERNAMEHERE
<Directory /var/www/>
AllowOverride None
order deny,allow
Options -Indexes FollowSymLinks
</Directory>
執行此操作要控制信息的每個目錄下,你將不得不在一個地方一個文件來管理所有的訪問。它是上面的例子,我做了根目錄/ var/www。
此選項可能不適用於外包託管,尤其是共享託管。但這是一個比添加許多文件更好的選擇。
在httpd.conf中阻止瀏覽器& wget訪問包含文件,特別是說db.inc或config.inc。請注意,您不能在指令中鏈接文件類型,而是創建多個文件指令。
在重新啓動Apache的
service httpd configtest
然後(平滑重啓)
service httpd graceful
- 1. 阻止直接訪問.php但允許AngularJS $ http請求
- 2. php腳本阻止直接訪問
- 3. htaccess阻止直接訪問文件夾(例外:通過php)
- 4. 塊直接訪問一個文件,但允許通過HTTP使用asp.net
- 5. 使文件可以通過Perl腳本訪問但阻止從Web訪問 - IIS6
- 6. 有沒有辦法禁止直接訪問文件,但允許通過PHP腳本使用IIS下載?
- 7. 阻止對PHP文件的直接HTTP訪問
- 8. PHP:如何阻止對文件的直接URL訪問,但仍允許通過登錄用戶下載?
- 9. 阻止來自直接,但仍允許訪問在重寫規則文件
- 10. 塊直接訪問PHP文件,只允許本地JavaScript訪問它
- 11. 阻止訪問者訪問.xml文件,但允許Flash將其打開
- 12. 阻止直接url訪問
- 13. htaccess阻止直接訪問
- 14. 防止外部訪問的PHP腳本,但允許AJAX
- 15. 允許從代碼訪問文件,但阻止瀏覽器?
- 16. 只允許腳本訪問文件iis7.5
- 17. 不允許通過htaccess訪問文件
- 18. 只允許通過CGI訪問文件
- 19. .htaccess - 拒絕訪問文件夾,但允許通過index.php訪問文件
- 20. 阻止通過.htaccess直接訪問php和html頁面
- 21. GCE:阻止直接HTTP/S訪問。但是,只能通過N/W Loadbalancer
- 22. 通過URL阻止訪問文件
- 23. 停止文件夾中直接訪問所有文件,但允許Ajax請求
- 24. 禁止直接訪問php頁面,但允許訪問,如果從特定頁面訪問
- 25. 阻止直接的html訪問包含php腳本的文件夾
- 26. 有沒有辦法允許直接訪問cgi-bin,但只允許本地php訪問
- 27. 拒絕對直接訪問文件,但允許在htaccess的
- 28. 防止圖像盜鏈,但允許直接訪問
- 29. PHP - 只允許通過AJAX訪問
- 30. 防止直接訪問php文件
願你看看[這]之前測試你的配置[1] [1] :http://stackoverflow.com/q/43951871/2441637 – 2017-05-13 15:19:24