在我的Symfony2項目中,我希望只能通過我的IP地址訪問app_dev.php。就像在config.php我可以設置一個IP數組,因此這個文件不能被所有人訪問。 這也可能爲app_dev.php?Symfony2:app_dev.php只允許訪問IP?
回答
在app_dev.php你會發現下面的代碼
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
您可以設置IP地址,從中你想在這裏訪問。
if (!in_array(@$_SERVER['REMOTE_ADDR'], array('Your IP address', '127.0.0.1', 'fe80::1', '::1'))
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
我完全忽略了這一點。謝謝! :) –
應該是&&!in_array? – timhc22
這不是最佳做法。 Insight(由Sensio分析)返回:「使用PHP響應函數(如header()在這裏)不鼓勵,因爲它繞過Symfony事件系統,改爲使用HttpFoundationResponse類。並且「不應使用$ _SERVER超級全局」。查看我的回覆http://stackoverflow.com/a/34897282/3066708 – johnnyevolunium
set in virtual host
/var/apache2/sites-avable
<VirtualHost *:80>
ServerName domain.com/main
ServerAlias www.domain.com/main
DocumentRoot /var/www/domain/main/web
DirectoryIndex app_dev.php
</VirtualHost>
switch
<VirtualHost 127.0.0.1:80>
ServerName domain.com/main
ServerAlias www.domain.com/main
DocumentRoot /var/www/domain/main/web
DirectoryIndex app_dev.php
</VirtualHost>
請解釋您的答案如何解決問題,它將幫助大家更好地理解您的解決方案清晰度和供將來參考。 – Aziz
這是@ chanchal118的答案稍有不同。 我們的網站位於負載均衡器之後,因此IP的工作方式稍有不同。 希望對有相似設置的人有所幫助。
如果IP被欺騙,我也有興趣聽到關於安全問題的任何想法。
//todo this may be a security concern if someone managed to spoof their IP as one of these
$allowedIPs = array('127.0.0.1', 'fe80::1', '::1', 'my.organisation.ip.address');
//allow app_dev.php only under these conditions (prevent for production environment) uses HTTP_X_FORWARDED_FOR because behind load balancer
if (
isset($_SERVER['HTTP_X_FORWARDED_FOR']) &&
(! in_array(@$_SERVER['HTTP_X_FORWARDED_FOR'], $allowedIPs))
){
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access the development environment.');
}
- 1. Symfony 3 - 不允許訪問app_dev.php
- 2. Symfony2:允許訪問控制允許來源與谷歌圖表
- 3. IP允許子目錄訪問NGINX
- 4. Nginx允許ip訪問所有路徑
- 5. Elasticsearch 2.3允許從外部IP訪問
- 6. 只允許用戶只讀訪問woocommerce
- 7. 密碼保護,只允許一個IP地址訪問目錄?
- 8. ufw只允許從我的IP地址訪問mongo(IPv6)
- 9. 只允許某些(動態)IP的訪問網站總監
- 10. 只允許一個IP可以訪問ASP.NET網站
- 11. 只允許從node.js中的特定IP地址訪問目錄
- 12. 訪問控制 - 允許來源不允許'ip'
- 13. Asp.net允許訪問管理員只有
- 14. 只允許Iphone訪問REST webservice
- 15. 只允許訪問組,但API全部
- 16. 只允許通過CGI訪問文件
- 17. PHP - 只允許通過AJAX訪問
- 18. 只允許腳本訪問文件iis7.5
- 19. 允許Facebook SDK只訪問照片
- 20. php只允許訪問某個文件?
- 21. PHP - 只允許從一個域訪問
- 22. 只允許Selenium訪問該頁面
- 23. PHP - 允許用戶只訪問一次
- 24. 只允許從eddystone url訪問webapp
- 25. 只允許通過Apache訪問域名
- 26. IIS7只允許訪問本地網絡
- 27. 只允許Wordpress訪問視頻文件
- 28. 只允許訪問homepage.html但否認
- 29. Symfony2 + Apache2.4 - 限制訪問特定的網址,並允許它只從特定的IP
- 30. 訪問控制 - 允許來源不允許訪問控制 - 允許來源
請注意,欺騙傳入的IP地址是微不足道的。因此,儘管只能使用給定的IP地址訪問app_dev,但無法將app_dev僅限制在您的計算機上。我懷疑,這是你的真正目標。 – Cerad