В моем проекте Symfony2 я хочу, чтобы app_dev.php был доступен только моим IP-адресом. Как и в 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.');
}
wow я полностью контролирую это. благодаря! :) –
должно быть &&! In_array? – timhc22
Это не лучшая практика. Insight (анализ Sensio) возвращает: «Использование функций ответа PHP (например, header() здесь) не рекомендуется, поскольку оно обходит систему событий Symfony. Вместо этого используйте класс HttpFoundationResponse». и «$ _SERVER super global не следует использовать». См. Мой ответ 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 «s ответ. Наши сайты находятся за балансировщиком нагрузки, поэтому 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. IIS7 разрешает доступ только к локальной сети
- 2. Symfony2 Capifony app_dev.php не найден
- 3. как кэш Symfony2 к моему файлу app_dev.php
- 4. Symfony2 Ajax app_dev.php в url
- 5. .htaccess разрешает доступ только к файлам из
- 6. php разрешает доступ только к определенному файлу?
- 7. Symfony2: ACL разрешает доступ к маршрутам с ключами
- 8. Nginx запрещает/разрешает доступ к файлу IP динамически - на лету
- 9. Symfony2 app_dev.php только ошибка 500 Преждевременный конец скрипта
- 10. Elasticsearch 2.3 разрешает доступ из внешнего ip
- 11. Symfony2 app.php работает, но не app_dev.php
- 12. Symfony2: redirect localhost/app_dev.php to localhost/
- 13. Блокировать IP-доступ только к определенной странице
- 14. Symfony2: можно получить объект пользователя в app_dev.php
- 15. Удалить только страницу регистрации - Symfony2
- 16. ufw разрешает доступ к mongo только с моего IP-адреса (IPv6)
- 17. Symfony2 и Apache2: не удается загрузить файл app_dev.php
- 18. Только администратор разрешает доступ к wp-admin и login?
- 19. Symfony2 - Как удалить 'web/app_dev.php /' из моего url?
- 20. Symfony2: Переключение между app.php и app_dev.php, я делаю это правильно?
- 21. Symfony2 + Apache2.4 - ограничить доступ к определенному URL-адресу и разрешить его только с определенного IP-адреса
- 22. htaccess разрешает доступ к определенному пользователю
- 23. Mod rewrite разрешает доступ к txt-файлу
- 24. ASP.net Form Authentication разрешает доступ к «/» vb.net
- 25. AWS .pem регенерирует файл или разрешает только IP
- 26. Symfony2: Доступ к анонимному пути
- 27. IP-доступ к SQL-серверу
- 28. Доступ к MongoDB несанкционированному IP
- 29. Как получить приложение symfony2, доступное без app_dev.php (например, www.app.com)
- 30. NSMangedObject не разрешает доступ к данным объектов
Просто имейте в виду, что тривиально обманывать входящий IP-адрес. Поэтому, пока вы можете сделать app_dev доступным только с заданным IP-адресом, вы не можете эффективно ограничивать app_dev только вашей машиной. Который, я подозреваю, твоя настоящая цель. – Cerad