Огромные рисунки на заснеженной поверхности озера Байкал |
Метки: рисунки джин деневан озеро байкал |
Уроки по PHP: PHP и Cookies |
Cookies - это механизм хранения данных броузером удаленного компьютера для идентификации возвращающихся посетителей и хранения параметров веб-страниц (например, переменных).
Приведем пример использования Cookies на конкретном примере.
Предположим, нам нужно написать счетчик посещения сайта. Нам нужно знать, какое число посещений сайта осуществлялось каждым конкретным посетителем.
Данную задачу можно решить двумя способами. Первый из них заключается в ведении учета IP-адресов пользователей. Для этого нужна база данных всего из одной таблицы, примерная структура которой такая:
IP-адрес
|
Число посещений
|
210.124.134.203
|
7
|
212.201.78.207
|
14
|
83.103.203.73
|
3
|
Когда пользователь заходит на сайт, нам нужно определить его IP-адрес, найти в базе данных информацию о его посещениях, увеличить счетчик и вывести его в браузер посетителя. Написать обработчик (скрипт) подобной процедуры несложно. Однако при использовании такого метода у нас появляются проблемы следующего характера:
Можно использовать второй способ, который намного легче в реализации и более эффективен. Мы устанавливаем в Cookie переменную, которая будет храниться на диске удаленного пользователя. Эта переменная и будет хранить информацию о посещениях. Она будет считываться скриптом при обращении посетителя к серверу. Выгода такого метода идентификации очевидна. Во-первых, нам не нужно хранить множество ненужной информации о IP-адресах. Во-вторых, нас не интересуют динамические IP-адреса, поскольку данные о своих посещениях хранятся конкретно у каждого посетителя сайта.
Теперь понятно, для чего мы можем использовать Cookie - для хранения небольшой по объему информации у клиента (посетителя) сайта, например: настройки сайта (цвет фона страниц, язык, оформление таблиц и.т.д.), а также другой информации.
Файлы Cookies представляют собой обыкновенные текстовые файлы, которые хранятся на диске у посетителей сайтов. Файлы Cookies и содержат ту информацию, которая была в них записана сервером.
Метки: php уроки по php |
Летние мотиваторы |
Метки: лето мотиваторы музыка релакс |
Петра |
Метки: петра зааброшенные города достопримечательности |
15 интересных фактов о воде |
Метки: вода интересные факты |
Уроки по PHP: Безопасность в PHP - Необходимость обновлений PHP |
PHP, как и любая другая система, непрерывно проверяется и улучшается. Каждая новая версия содержит множество как существенных, так и мелких новшеств и доработок, которые, в том числе, касаются повышения безопасности, расширения конфигурационных возможностей, а так же стабильности вашей системы.
Как и в других языках программирования, рекомендуется регулярно обновлять PHP и быть в курсе изменений, сделанных в последних версиях.
PHP.SU
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Безопасный режим в PHP |
Защищенный режим в PHP - это попытка решить проблему безопасности на совместно используемых серверах. Несмотря на то, что концептуально неверно решать эту проблему на уровне PHP, но поскольку альтернативы уровня веб-сервера или операционной системы на сегодняшний день отсутствуют, многие пользователи, особенно провайдеры, используют именно защищенный режим.
Метки: php уроки по php |
Позитивная суббота |
Метки: мотиваторы позитив |
Уроки по PHP: Безопасность в PHP - Маскировка PHP |
В общем случае внесение неясности ненамного улучшает защищенность системы. Но бывают случаи, когда следует использовать малейшую возможность.
Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php = off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.
Еще одна методика заключается в настройке веб-сервера таким образом, чтобы он обрабатывал файлы с различными расширениями как PHP-скрипты. Это можно указать как в .htaccess файлах, так и конфигурационном файле Apache. В таком случае вы сможете использовать при написании кода нестандартные расширения:
Пример 1. Маскировка PHP под другие языки программирования
# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования AddType application/x-httpd-php .asp .py .pl |
Или скрыть его совсем:
Пример 2. Использование неизвестных расширений для PHP-скриптов
# Теперь PHP-скрипты могут иметь неизвестные типы файлов AddType application/x-httpd-php .bop .foo .133t |
Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML файлы будут обрабатываться как PHP-код:
Пример 3. Маскировка PHP-кода под html-файлы
# Теперь PHP-скртпы могут выглядеть как обыкновенный HTML AddType application/x-httpd-php .htm .html |
Чтобы достичь желаемого эффекта, вы должны переименовать все ваши скрипты в соответствии с выбранным вами расширением. Описанный на этой странице способ повышения безопасности через маскировку PHP имеет мало недостатков при небольших затратах.
PHP.SU
Метки: php уроки по php |
Резьба по ракушке - изящно и красиво (20 фото) |
Метки: резьба по ракушке искусство |
Уроки по PHP: Безопасность в PHP - "Волшебные Кавычки" (Magic Quotes) |
"Волшебные Кавычки" (Magic Quotes) - это процесс, который позволяет автоматически экранировать входные данные PHP скрипта. Данный принцип позволяет экранировать внешние данные, приходящие в PHP скрипт во время его выполнения.
Что представляют собой "Волшебные Кавычки"?
Когда "Волшебные Кавычки" включены (активизированы), все ' (одиночные кавычки), " (двойные кавычки), \ (левый слэш) и NULL знаки автоматически экранируются левыми слэшами (\). Данный принцип аналогичен действию функции addslashes().
Существуют три директивы "Волшебных Кавычек":
magic_quotes_gpc
Затрагивает данные запросов HTTP (GET, POST, и COOKIE). Не может быть установлена в процессе работы PHP скрипта и установлена в on по умолчанию.
Смотрите также описание функции get_magic_quotes_gpc().
magic_quotes_runtime
Если данная директива включена (on), большинство функций, которые возвращают данные из внешнего источника, включая базы данных и текстовые файлы, будут экранировать данные левыми слэшами (\). Может быть установлена во время выполнения PHP скрипта. По умолчанию директива установлена в off.
Смотрите описание функций set_magic_quotes_runtime() и get_magic_quotes_runtime().
magic_quotes_sybase
Если данная директива включена (on), одиночные кавычки экранируются двойными кавычками, вместо левых слэшей (\). Причем если данная директива установлена в on, это полностью отменяет установку директивы magic_quotes_gpc. Включение (on) обеих директив будет означать, что будут экранироваться только одиночные кавычки двойными кавычками ("). Двойные кавычки ("), левые слэши (\) и NULL останутся нетронутыми.
Смотрите также описание функции ini_get(), которая позволяет получить значения упомянутых директив.
Метки: php уроки по php |
Море, чайки |
Метки: море чайки притчи музыка фото |
Уроки по PHP: Безопасность в PHP - Данные, введенные пользователем |
Наиболее опасные дыры во многих PHP-скриптах возникают не столько из-за самого языка, сколько из-за кода, написанного без учета соответствующих требований безопасности. Как следствие, вы всегда должны выделять время на исследование разрабатываемого участка кода, чтобы оценить потенциальную угрозу от ввода переменной с нестандартным значением.
Пример 1. Потенциально опасное использование переменных
<?php
// удалить файлы из домашней директории пользователя...
// а может, еще что нибудь?
unlink ($evil_var);
// записать в лог-файл выполняемое действие...
// может быть, даже /etc/passwd?
fwrite ($fp, $evil_var);
// выполнение тривиальных действий... или rm -rf *?
system ($evil_var);
exec ($evil_var);
?>
Вы должны тщательно проверять ваш код и быть абсолютно уверены в том, что все данные, передаваемые веб-браузером, проверяются надлежащим образом. Попробуйте ответить для себя на следующие вопросы:
Будет ли данный скрипт воздействовать исключительно на предполагаемые данные?
Правильно ли будут обработаны некорректные или нестандартные данные?
Возможно ли использование скрипта не предусмотренным способом?
Возможно ли его использование в сочетании с другими скриптами в негативных целях?
Будет ли каждая транзакция корректно логирована (протоколирована)?
Ответив на эти вопросы во время написания скрипта, а не после, вы, возможно, предотвратите последующую доработку скрипта в целях повышения его безопасности. Начиная разработку с этих вопросов, вы не гарантируете полную безопасность вашей системы, но сможете значительно повысить её.
Вы также можете предусмотреть отключение таких конфигурационных опций, как register_globals, magic_quotes и некоторых других, которые могут приводить к сомнениям относительно происхождения или значения получаемых переменных. Использование при написании кода режима error_reporting(E_ALL) может помочь, предупреждая вас об использовании переменных до инициализации или проверки (что предотвратит работу с данными, отличныи от ожидаемых).
PHP.SU
Метки: php уроки по php |
Природа (34 фото) |
Метки: природа фото |
Уроки по PHP: Безопасность в PHP - Использование глобальных переменных (Register_Globals) |
Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для опции register_globals с ON на OFF в версии 4.2.0. Большинство пользователей доверились разработчикам, даже не зная, что это за опция и как она влияет на работу PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, угрозу представляет некорректное использование предоставляемых ею возможностей.
Метки: php уроки по php |
Пингвины |
|
Пингвины |
|
Уроки по PHP: Безопасность в PHP - Сообщения об ошибках |
С точки зрения безопасности вывод сообщений об ошибках несет в себе как плюсы, так и минусы.
Одна из стандартных методик, применяемых в атаках - ввод некорректных данных с последующим анализом содержания и характера сообщений об ошибках. Это дает взломщику возможность проверить скрипты и данные сервера на наличие потенциальных дыр. Например, если взломщик получил некоторую информацию о странице на основании отправки формы, он попробует предопределить некоторые передаваемые значения или модифицировать их:
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Сообщения об ошибках |
С точки зрения безопасности вывод сообщений об ошибках несет в себе как плюсы, так и минусы.
Одна из стандартных методик, применяемых в атаках - ввод некорректных данных с последующим анализом содержания и характера сообщений об ошибках. Это дает взломщику возможность проверить скрипты и данные сервера на наличие потенциальных дыр. Например, если взломщик получил некоторую информацию о странице на основании отправки формы, он попробует предопределить некоторые передаваемые значения или модифицировать их:
|