Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Заметки Дизайнера" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Август 2005 → | ||||||
1
|
2
|
3
|
4
|
5
|
6
|
|
---|---|---|---|---|---|---|
8
|
9
|
10
|
11
|
12
|
13
|
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
Статистика
-1 за неделю
PHP Wars: против целого мира
Информационный Канал Subscribe.Ru |
PHP Wars: против целого мира - выпуск 9 | ||||||||||||
Зачем…Многие, после прошлого выпуска рассылки прислали мне свои мнения. Было много как позитивных так и негативных отзывов. Основой для негативных отзывов стала мысль о том, что для рассылки обучающей программированию на php не стоит углубляться в сменные темы. Но я у меня другое мнение. Все уже заложено в названии рассылки. Мы не собираемся учить - это вы можете научиться - если есть желание. Мы можем лишь помочь вам - вы можете помочь нам. Все просто! Такие статьи это стимул для новичков - отзывы стимул для нас. Что тут неясного. Сегодня мы начнем как и говорилось с отзывов на мою статью, вышедшею в прошлой рассылке. Далее вам будет предложена статья "Предохраняйся с помощью сессий часть 2". Продолжение другой нашей статьи, так же вызвавшей не однозначную реакцию у некоторых людей. А вот про UpLoad соредактор NoNseNs написать никак не успел. Т.к. (не будем тыкать пальцем) нам явно намекнули, что мы пытаемся "замять" тему. Ничего мы не пытаемся. Iprit, глав(в)ред рассылки. Прокомментирую некоторые яркие мнения относительно прошлой статьи.
[Статья]: Автор: NoNseNs Предохраняйся с помощью сессий часть 2.Эта статья выходит как продолжение цикла статей о простой системе защиты от несанкционированного доступа. Если вы не читали предыдущую статью, то прочтите, иначе вам будет трудно понять эту. Принцип защиты, описанный в предыдущей статье, первоначально был написан без использования баз данных mysql. Первоначально в скрипте использовались файлы для хранения паролей, поэтому переходя на базы данных я упустил возможность mysql injection. Что же, постараюсь в этой статье описать, как защититься от этой самой "инъекции". Кроме того, в статье будет описано, как решить те самые проблемы, что были обозначены в первой части.
Итак, обеспечиваем безопасную запись в базу. Самый простой способ - использование функции addslashes() - она отменит значение символов, которые могут вызывать проблемы при сохранении в базе данных. Чтобы вернуть данные в исходный вид нужно воспользоваться функцией stripslashes(). Вот таким образом это можно сделать в нашем случае:
<?
Function check() Второй способ - использование регулярных выражений. С помощью регулярных выражений вы уже сами можете решать - какие символы допускать, а какие нет. Про регулярные выражения написано уже множество материала, поэтому опустим этот вопрос. Еще один способ - использовать специальные функции, которые мнемонизируют (делают удобоваримой для mysql_query) строку. Это mysql_real_escape_string() и mysql_escape_string(). Только помните, что они не мнемонизирует символы % и _. Пример использования: $name= mysql_escape_string($name); Любой из этих способов защитит вас от mysql injection. Идем дальше.Для более мощной защиты захешируем наши пароли. Для этого будем использовать функцию crypt(). "Захешируем" - это значит превратим наш пароль в псевдослучайную строку, причем, такую, что ее нельзя перевести обратно. "Если нельзя расшифровать пароль, то зачем нужна такая шифровка?", спросите вы. Отвечу. Если скормить нашей функции два одинаковых слова, то на выходе будет два абсолютно одинаковых значения. Теперь понятно как важна эта функция? Мы не можем расшифровать пароль и сравнить его с вводимым, но мы можем зашифровать вводимую строку и сравнить ее с хранящейся в базе. Т.к. пароль нельзя расшифровать, то даже если злоумышленник каким-то образом просмотрит содержимое нашей таблицы с паролями, то он увидит только захешированные строки из которых вытянуть настоящие пароли будет крайне затруднительно. Алгоритм шифрования зависит от операционной системы. crypt(string_1, string_2); Первый аргумент функции - это строка, которую нужно зашифровать. Второй - необязателен, если он не предоставлен, то будет автоматически сгенерирован PHP. Но если вы его не укажите, то на одно и тоже слова функция будет выдавать вам разный результат, поэтому нам все же придется задавать и второй аргумент. Пример использования: $pass=crypt($pass, "ph");Таким образом, мы хешируем вводимый пользователем пароль и сверяем полученный результат с табличным значением (а там хранятся захешированные с тем же вторым аргументом пароли), если значения совпадают, значит впускаем пользователя. Идем еще дальше.Решим те задачи, что поставили в предыдущей статье, а именно:
В принципе, эти две задачи сводятся к одной. И решение ее очень простое - удаление сессии. Сделаем ссылку "выход", которая будет перебрасывать нас на страницу с формой авторизации (index.php) и удалять нашу сессию. Вот ссылка: <a href="index.php?exit=1">Выход</a> А этот код разместим на index.php (в самом верху страницы):
<?
session_start(); Если определена переменная $exit, то функция session_destroy() уничтожает сессию. Как я и обещал в прошлой статье, я расскажу, как сделать функцию вывода ошибки, да не простую, а с записью в лог и отправкой отчета об ошибке по почте. Итак, вот код:
function error($er) Теперь, когда произойдет ошибка пользователю откроется страница с сообщением "Ошибка: описание_ошибки", а вам на ящик придет подробный отчет об ошибке, этот же отчет запишется в лог файл. Теперь сделаем блокировку подбора пароля. Для этого изменим немного функцию error():
function error($er) Немного поясню новый код: переменная $attempt является счетчиком количеств неудачных попыток попасть на сайт. Каждый раз, когда вызывается функция error(), значение переменной увеличивается на 1. Теперь подправим функцию check():
function check($pass, $name) Поясню новый код: функция intval получает целочисленное значение переменной, далее если количество попыток равно 3, то мы ничего больше не показываем, на какую бы страницу не заходил пользователь. Эта блокировка будет действовать до тех пор, пока не умрет сессия. Так же можно внести блокировку и на index.php там мы напишем тоже самое:
<? Вот и все. Теперь врятли кто-нибудь сможет получить доступ к вашему ресурсу без разрешения. Пока.
Новости от Rynet@NewsПроверку подлинности сломали в течение 24 часовПродолжая тему попыток увеличения продаж Microsoft, стоит сообщить и о судьбе программы по автоматической проверке подлинности установленной на ПК пользователя Windows. Если ранее проверка подлинности Windows при скачивании обновлений была добровольной, то в понедельник на прошлой неделе Microsoft сообщила, что эта процедура (в рамках акции Windows Genuine Advantage) становится обязательной. Владельцам пиратских копий отныне доступны лишь самые критические для безопасности обновления. Буквально на следующий же день в интернете появилась информация о том, как эту проверку можно обойти. Процедура оказалась простой до безобразия - достаточно было поместить небольшую строчку на JavaScript в адресную строку браузера для того, чтобы блокировать автоматическую установку утилиты проверки подлинности GenuineCheck.exe. Впрочем, счастье вряд ли будет длиться вечно. Почти наверняка Microsoft придумает другой способ проверки подлинности Windows, обойти который будет значительно сложнее. Internet Explorer 7.0 официально стал доступенКак известно, вместе с первой бета-версией Windows Vista вышел и встроенный в нее предварительный IE 7.0. Отдельная же версия этого web-браузера с самого начала отсутствовала. Теперь же, два дня спустя после выхода Vista Beta 1, стала доступна для скачивания и самостоятельная версия IE 7.0 Beta 1. Среди наиболее заметных нововведений - переход на многостраничный режим работы в едином окне браузера (как в Opera, Maxthon и др.). При этом не меньший интерес представляют и новые технологии, которые будут поддерживаться этим web-браузером. Среди таковых называются PNG (Portable Network Graphics) и IDN (Internationalized Domain Names). Также был усовершенствован пользовательский интерфейс Secure Sockets Layer (SSL). Новинка, правда, поддерживает работу только с Windows XP. Причем необходимо, чтобы ОС успешно прошла проверку на подлинность, иначе установить Internet Explorer 7.0 Beta 1 не удастся. Но все же сам факт показателен и хорошо иллюстрирует обостряющуюся конкуренцию на рынке браузеров. Microsoft уточнила время выхода Windows VistaКомпания Microsoft немного уточнила сроки выхода новой операционной системы Windows Vista, ранее известной как Longhorn. До последнего времени в качестве срока окончательного релиза указывалась вторая половина 2006 года. Однако на ежегодной встрече руководства Microsoft с финансовыми аналитиками вице-президент Microsoft по клиентским версиям Windows Уилл Пул сказал, что Windows Vista будет выпущена к "праздничному сезону 2006 года". При этом Пул не уточнил, имеет ли он в виду День благодарения, который празднуется в США в конце ноября, или же Рождество. Впрочем, в любом случае слова Пула означают, что раньше четвертого квартала 2006 года Windows Vista на прилавках американских магазинов не появится. Замечу, что еще неизвестно, будет ли новая версия ОС называться именно Vista. Оказывается, брэнд Vista уже давно принадлежит другой компании из Редмонда (!), так что придется либо его поменять, либо заплатить отступные, либо несколько лет судиться. Новости ПО от Ymt.pp.ruGridinSoft Notepad 3.0.1.0Текстовый и HEX редактор с подсветкой синтаксиса для более 45 форматов (HTML, ASP, PHP, Perl, Pascal, C++, и др.), возможностью предварительного просмотра перед печатью, закладками, шаблонами, статистикой набранного текста, проверкой синтаксиса (англ. язык), возможностью использования скриптов и удобным интерфейсом на нескольких языках. Для пользователей стран бывшего СССР регистрация бесплатная. TranslateIt! 1.3 beta1Описание разработчика: На сегодня это все. Очередной выпуск нашей рассылки ждите как обычно в следующее воскресенье. Продолжение неизбежно… |
PHP Wars 2005, Все права на материалы принадлежат их авторам. Перепечатка или любое другое использование материалов рассылки разрешается только с письменного разрешения. |
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpwars |
Отписаться
Вспомнить пароль |
В избранное | ||