Удмуртские поговорки |
Дневник |
Вот решил познакомить вас с "мудростями" своего народа)))
Без ветра и дерево не шевелится.
Будешь овечкой - волки найдутся
В своей берлоге медведь - богатырь
Во время работы сам буди солнце
Всякая лиса о своем хвосте печется
Если одна ветка обломится, другая даст побег
Метки: поговорки удмуртия |
Пара приёмов для работы с mIRC |
Дневник |
Если вы любите сидеть в чатах, то возможно, как и я, пользуетесь irc-клиентом mIRC. Хочу поделиться парой приёмов, которые облегчают работу с этой программой.
Например, в этом клиенте можно прикреплять на клавиши различные команды. И в дальнейшем вызывать эти команды нажатием одной клавиши, а не набирать их каждый раз вручную. Итак,, заходим в Настройки (Settings)-Редактор скриптов (Script editor)- Алиасы (Aliases) и например, в новой строке пишем "/f1 say !help". Теперь при нажатии клавиши F1 вы пошлёте на канал команду !help. Или например, пишем "/f2 /list". Теперь при нажатии клавиши F2 вы выведете список каналов, доступных на данном сервере. Заметьте, в этом случае, слово "say" уже не пишем.
Второе... В mIRC при двойном нажатии на ник какого-то пользователя, открывается окно привата. Лично я нечасто общаюсь в привате и мне лучше было бы, чтобы при двойном нажатии на ник я мог отправить сообщение, адресованное владельцу данного ника не в приват, а в "общак". Как это сделать? Для этого идём в Настройки (Settings)-Опции (Options). В открывшемся окне открываем вкладку "Мышь (Mouse)" и в поле "Список ников (List of nicknames)" вместо того, что там написано, вписываем "/editbox -apf $editbox($active) $1:" Вот теперь при двойном нажатии на ник в поле, где вы пишете своё сообщении появится этот ник с двоеточием и дальше вы пишете своё обращение к нему.
Ну вот и всё, что я хотел вам поведать) Надеюсь, хоть кому-то помог)
Метки: mirc чаты полезное |
Секреты клавиши Windows |
Для вашего цитатника!!!
Метки: клавиатура Windows полезная информация |
Уроки по PHP: Управление сайтом |
Дневник |
В этой статье я расскажу, как управлять сайтом. Изменив всего несколько файлов, вы сможете изменить дизайн Вашего сайта. Для начала нам нужно создать в корне сайта папку "data", туда мы и поместим файлы для нашего сайта. Например, создадим файлы main.html, about.html, works.html и contacts.html. Теперь также в корне сайта (не в папке "data") создаём файл index.php, который и будет формировать вид нашего сайта.
Метки: php уроки по php |
Уроки по PHP: Генератор паролей на PHP |
Дневник |
Автор: IT-студия SoftTime (softtime.ru)
Пароль генерируется случайным образом при помощи функции uniqid. Эта функция возвращает уникальный идентификатор, основываясь на значениях текущего времени в микросекундах.
При таком варианте использования функции возвращается 128-битный хеш-код
Однако полученный пароль содержит лишь буквы английского языка в нижнем регистре и цифры. Для генерации более стойкого к подбору паролей можно воспользоваться скриптом приведённым ниже.
Генерация "равномерного" пароля
<form method=post> <input type=text name=number value="10"> <input type=submit value="Генерировать"> <form><br><br> <?php // Параметр $number - сообщает число // символов в пароле echo generate_password($_POST['number']); function generate_password($number) { $arr = array('a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','r','s', 't','u','v','x','y','z', 'A','B','C','D','E','F', 'G','H','I','J','K','L', 'M','N','O','P','R','S', 'T','U','V','X','Y','Z', '1','2','3','4','5','6', '7','8','9','0','.',',', '(',')','[',']','!','?', '&','^','%','@','*','$', '<','>','/','|','+','-', '{','}','`','~'); // Генерируем пароль $pass = ""; for($i = 0; $i < $number; $i++) { // Вычисляем случайный индекс массива $index = rand(0, count($arr) - 1); $pass .= $arr[$index]; } return $pass; } ?>
Метки: php уроки по php |
Уроки по PHP: Сессии в PHP |
Дневник |
Сессии - это на самом деле очень просто. Надо только понимать, для чего они нужны и как устроены. Ответим сначала на первый вопрос.
Возможно Вы знаете, что веб-сервер не поддерживает постоянного соединения с клиентом, и каждый запрос обрабатывается, как новый, без связи с предыдущими.
То есть, нельзя ни отследить запросы от одного и того же посетителя, ни сохранить для него переменные между просмотрами отдельных страниц. Вот для решения этих двух задач и были изобретены сессии.
Собственно, сессии, если в двух словах - это механизм, позволяющий однозначно идентифицировать браузер и создающий для этого браузера файл на сервере, в котором хранятся переменные сеанса.
Подробно расписывать нужду в таком механизме я не буду. Это такие случаи, как корзина покупок в интернет магазине, авторизация, а так же, и не совсем тривиальные проблемы, такие, например, как защита интерактивных частей сайта от спама.
В принципе, довольно несложно сделать собственный аналог сессий, не такой функциональный, как встроенный в PHP, но похожий по сути. На cookies и базе данных.
При запросе скрипта смотрим, пришла ли cookies с определенным именем. Если cookies нет, то ставим ее и записываем в базу новую строку с данными пользователя. Если cookies есть, то читаем из базы данные. Еще одним запросом удаляем из базы старые записи и вот у нас готов механизм сессий. Совсем несложно. Но есть некоторые нюансы, которые делают предпочтительным использование именно встроенного механизма сессий.
Метки: php уроки по php |
Уроки по 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 |
Функции PHP |
На этой странице Вы можете выполнить запрос описания функции PHP, либо произвести поиск необходимой функции PHP по ключевому слову. На данный момент в базе портала PHP.SU cодержатся 4203 функции PHP, включая функции расширений.
Метки: ссыька php уроки по php |
Уроки по 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 |
Уроки по 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 |
Цитата сообщения AmAyfaar
Путешествие в Астральный Мир (медитативная мелодия) |
Цитата |
Метки: медитация музыка |
Комментарии (0) |
Уроки по 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 |
Уроки по PHP: Безопасность в PHP - Использование глобальных переменных (Register_Globals) |
Дневник |
Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для опции register_globals с ON на OFF в версии 4.2.0. Большинство пользователей доверились разработчикам, даже не зная, что это за опция и как она влияет на работу PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, угрозу представляет некорректное использование предоставляемых ею возможностей.
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Сообщения об ошибках |
Дневник |
С точки зрения безопасности вывод сообщений об ошибках несет в себе как плюсы, так и минусы.
Одна из стандартных методик, применяемых в атаках - ввод некорректных данных с последующим анализом содержания и характера сообщений об ошибках. Это дает взломщику возможность проверить скрипты и данные сервера на наличие потенциальных дыр. Например, если взломщик получил некоторую информацию о странице на основании отправки формы, он попробует предопределить некоторые передаваемые значения или модифицировать их:
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Безопасность баз данных |
Дневник |
Вступление
На сегодняшний день базы данных являются ключевыми компонентами большинства веб-приложений, позволяя предоставлять на сайтах динамический контент. Поскольку в таких БД может храниться очень точная или конфиденциальная информация, вы должны обеспечить хорошую защиту данных.
Для извлечения или сохранения любых данных вам необходимо открыть соединение с базой данных, отправить верный запрос, извлечь результат и закрыть соединение. В настоящее время наиболее распространенный стандарт общения - структурированный язык запросов (SQL). Всегда следует помнить о возможности атаки посредством SQL-запроса (SQL-инъекция).
Очевидно, что сам по себе PHP не может защитить вашу базу данных. Этот раздел документации рассказывает об основах безопасного доступа и управления данными в PHP-скриптах.
Запомните простое правило: максимальная защита. Чем больше потенциально опасных участков системы вы проработаете, тем сложнее будет потенциальному взломщику получить доступ к базе данных или повредить ее. Хороший дизайн базы данных и программных приложений поможет вам справиться с вашими страхами.
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Безопасность файловой системы PHP является одним из важных моментов |
Дневник |
PHP является одним из важных моментов в вопросе безопасности сервера, поскольку PHP-скрипты могут манипулировать файлами и каталогами на диске. В связи с этим существуют конфигурационные настройки, указывающие, какие файлы могут быть доступны и какие операции с ними можно выполнять. Необходимо проявлять осторожность, поскольку любой из файлов с соответствующими правами доступа может быть прочитан каждым, кто имеет доступ к файловой системе.
Поскольку в PHP изначально предполагался полноправный пользовательский доступ к файловой системе, можно написать скрипт, который позволит читать системные файлы, такие как /etc/passwd, управлять сетевыми соединениями, отправлять задания принтеру, и так далее. Как следствие вы всегда должны быть уверены в том, что файлы, которые вы читаете или модифицируете, соответствуют вашим намерениям.
Метки: php уроки по php |
Уроки по PHP: Безопасность в PHP - Если PHP установлен как модуль Apache |
Дневник |
Когда PHP используется как модуль Apache, он наследует права пользователя, с которыми был запущен веб-сервер (обычно это пользователь 'nobody'). Это влияет на обеспечение безопасности и реализацию авторизации. Например, если вы используете базу данных, которая не имеет встроенного механизма разграничения доступа, вам прийдется обеспечить доступ к БД для пользователя 'nobody'. В таком случае зловредный скрипт может получить доступ к базе данных и модифицировать ее, даже не зная логина и пароля. Вполне возможна ситуация, когда веб-паук неверными запросами страницы администратора базы данных уничтожит все данные или даже структуру БД. Вы можете избежать такой ситуации при помощи авторизации Apache или разработав собственную модель доступа, используя LDAP, файлы .htaccess или любые другие технологии, внедряя соответствующий код в ваши скрипты.
Достаточно часто используются такие настройки безопасности, при которых PHP (имеется ввиду пользователь, с правами которого выполняется Apache) имеет минимальные привелегии, например отсутствует возможность записи в пользовательские директории. Или, например, отсутствует возможность работать с базой данных. При этом система безопасности не позволяет записывать как "хорошие", так и "плохие" файлы, аналогично позволяет производить как "хорошие", так и "плохие" транзакции.
Распространенной ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.
Расширение привилегий веб-сервера до полномочий угрожает работоспособности всей системы, такие команды, как sudo, chroot должны выполняться исключительно теми, кто считает себя профессионалами в вопросах безопасности.
Существует несколько простых решений. Используя open_basedir, вы можете ограничить дерево доступных директорий для PHP. Вы так же можете определить область доступа Apache, ограничив все веб-сервисы не-пользовательскими или не-системными файлами.
PHP.SU
Метки: php уроки по php |