2011-10-01 80 views
2

我需要阻止來自某些國家的上傳圖片的訪問者 - 但他們應該能夠訪問該網站。如何禁止某些國家的訪問者訪問我網站上的文件(xyz.com/thisFile.php)?

例如,我有一個網站xyz.com。我目前設置的方式,全部來自黑名單國家的訪問者無法訪問該網站本身,並迎來了403.這當然不是一個好的解決方案,所以我想要設置它這些用戶仍然可以訪問和使用該網站,但無法上傳圖像(通過點擊xyz.com/upload/,這是xyz.com/upload_file.php的別名)。來自其他列入白名單的國家的其他用戶顯然應該能夠使用該網站的所有功能,除了來自列入黑名單的國家/地區的用戶,他們不應該能夠上傳他們的圖像。

我如何通過.htaccess確保這種情況?我目前在Cloudflare上,並且.htaccess中的相關文本如下:

SetEnvIf CF-IPCountry AA UnwantedCountry=1 
SetEnvIf CF-IPCountry BB UnwantedCountry=1 
SetEnvIf CF-IPCountry CC UnwantedCountry=1 
Order allow,deny 
Deny from env=UnwantedCountry 
Allow from all 

謝謝。

+0

你意識到用戶可以使用代理來解決這個問題吧? – Amber

+0

很顯然我這樣做。 – oxo

回答

3

變化的代碼在你的問題這些行以這樣的:

<Files "upload_file.php"> 
SetEnvIf CF-IPCountry AA UnwantedCountry=1 
SetEnvIf CF-IPCountry BB UnwantedCountry=1 
SetEnvIf CF-IPCountry CC UnwantedCountry=1 

Order allow,deny 
Allow from all 
Deny from env=UnwantedCountry 
</Files> 

這將限制只對文件upload_file.php訪問這些國家。

+1

這正是我所需要的。謝謝。 – oxo

2

是否必須是別名?你可以創建一個upload/文件夾,並將.htaccess放在那裏?它可能需要更改一些upload_file.php邏輯,但這似乎是對我來說最簡單的修復。

0

我認爲.htaccess文件可以放到/ any /子目錄中。將您的文件上傳代碼放到一個目錄中,並將.htaccess控件放在那裏?

相關問題