19 дек 2010
Защита и настройка PHP на сервере XAMMP
Schok89 Категория: Web-Мастеру » Уроки
У нас вы можете скачать бесплатно Защита и настройка PHP на сервере XAMMP

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Защита и настройка PHP на сервере XAMMP


В этой статье расскажу о самых основных настройках php, которые наиболее важны.
Это минимум, который необходим для запуска нового сервера.

Все настройки делаются с помощью файла php.ini
Находится он может где угодно, если вы не знаете где находится php.ini, выполните phpinfo(); в скрипте и найдите параметр Loaded Configuration File, тут и будет путь до конфига php.
Открывайте этот файл, будем его править.

Не приятный заголовок, который выдает сервер при работе PHP скрипта.
X-Powered-By:
Этот заголовок появляется когда информация выводится с помощью PHP скрипта.
Если запросить статический html документ, то этого заголовка не будет, но если информацию на страницу выведет PHP скрипт, то в этом заголовке будет подобное

X-Powered-By: PHP/5.2.5
То есть заголовок объясняет всем, что страница создана с помощью PHP и показывает версию PHP.
Даже если вы используете mod rewrite и обращаетесь к страницам как к статическим документам, то этот заголовок все равно расскажет всем, что страница создана с помощью PHP.
Лучше убрать этот заголовок. Полезно, если вы хотите замаскировать свой сайт под полностью статический, ну и хулиганы лишний раз не узнают версию PHP.
Находим в php.ini

expose_php = on
меняем значение на off

Короткие теги php.
Классически начало php скрипта обозначается <?php, но можно для упрощения начинать скрипт просто <?, вот этот вариант и называется короткий тег.
По умолчанию обычно короткие теги отключены в php, но большая часть программистов используют короткие теги в своих скриптах, поэтому лучше включить короткие теги, чтобы не было проблем.
Для включения находим

short_open_tag = off
и меняем значение на on
Если short_open_tag не нашли, добавьте сами.

Запрет на выход за пределы директории.
Если php запущен под windows, то по умолчанию из любого php скрипта можно получить доступ к любому файлу на компьютере.
Стандартными средствами windows нельзя ограничить доступ как в unix. По этой причине, очень давно я случайно очистил весь свой диск С:/ , естественно потеряв всю систему.
Можно ограничить доступ php скриптов к директориям и файлам через php.ini.
Находите параметр
open_basedir =
Возможно он будет закрыт комментарием (;), тогда удалите комментарий и пропишите путь, выше которого php скрипты не смогут получить доступ.
Например

open_basedir =/xampp/
Если вы устанавливали сервер с помощью xampp, то весь сервер у вас находится в одной папке, поэтому можно разрешить доступ ко всей папке сервера, либо можете ограничить только папкой, в которой лежат скрипты.
Слэш в конце обязателен, если его не поставить (C:/xampp), то в данном примере доступ будет разрешен и к папке xampp и к папке xamppaswe, то есть к любой папке которая начинается на xampp.

Этот параметр можно будет менять в виртуальных хостах, назначая для каждого сайта свой каталог доступа.
Подробнее об этом читайте основные настройки apache.

Глобальные переменные register globals
Обязательно проверьте, чтобы

register_globals = Off

обязательно был off, никогда не ставьте on, за исключением тех случаев, когда этого требуют надежные скрипты.
Этот параметр отключает копирование глобальных переменных (POST, GET, SESSION и т.д.) в обычные.
То есть, если есть переменная $_GET['webi'], то при включенном параметре автоматически создается еще и обычная переменная $webi, содержащая данные из $_GET['webi'].
Но некоторые считают, что при отключении register globals глобальные переменные совсем отключаются и они не смогут получить доступ к POST, GET и т.д.
Поэтому напоминаю, что отключается только копирование глобальных переменных в обычные.

Время.
С помощью функций даты и времени проверьте какое время возвращает PHP.
Скорее всего оно будет не вашей временной зоны, так как по умолчанию время в PHP устанавливается в UTC(не GMT).
Если время на сервере для вас имеет значение, тогда в php.ini находите и редактируйте параметр
date.timezone
В этом параметре укажите необходимую вам временную зону, например у меня стоит зона Новосибирская


date.timezone = "Asia/Novosibirsk"

Для Москвы это выглядит так


date.timezone = "Europe/Moscow"


Узнать как правильно пишется ваша временная зона можно так

[? print_r(DateTimeZone::listIdentifiers()); ?]

Это выдаст полный список временных зон.

Это были наиболее важные моменты в настройке php необходимые для запуска нового сервера. Все остальные настройки можно оставить по умолчанию, для запуска сервера этого хватит.









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Igrikis | 19 декабря 2010 14:28
  • Группа: Посетители |
  • Комментарий: 1 (ссылка)

Да все работает даже после простой установки xammp! Я его установил, запусти апач и и май эскьюел и все сразу заработало!! Не понимаю для чего выложили эти настройки!!

Schok89 | 20 декабря 2010 07:24
  • Группа: Посетители |
  • Комментарий: 2 (ссылка)

Цитата: Igrikis
Да все работает даже после простой установки xammp! Я его установил, запусти апач и и май эскьюел и все сразу заработало!! Не понимаю для чего выложили эти настройки!!

Смотря какой у тебя xammp. Но это не только для xammp, ведь и на VDS сервер после установки php и т.д. будет всё это.10

Lalaine | 6 сентября 2011 14:26

Do you have more great articels like this one?

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.