Вы читаете журнал [info]astraller

astraller
Организовать хранение паролей можно тремя способами:
1) «Здравствуй хакер».
2) «Сначала разгадай».
3) «А вот фиг!»

Чем они отличаются?

Первый способ:
Пароль хранится в базе данных в открытом виде. Любой проникший в базу данных получает ВСЕ пароли всех пользователей. Пользователи любят использовать один и тот же пароль для многих своих аккаунтов на разных сайтов. Фактически таким способом злоумышленник получает доступ ко всем остальным аккаунтам.

Второй способ:
Пароли в базе данных хранятся зашифрованными, точнее хранятся т.н. «хеши паролей». При хешировании всегда получается строка в определенное число байт. Т.е. если мы используем алгоритм хеширования md5 и исходный пароль больше 32 двух символов, то восстановить пароль из хеша будет не реально.

Но кто использует пароли больше 32 символов?

Третий способ, о котором мы сейчас и поговорим:
Как сделать так чтобы строка перед хешированием была длиннее 32 символов, и при этом можно было проверить, что она действительно соответствует паролю? И чтобы при этом хакер перехватив строку данных не получил всех данных?
Надо использовать строку которую всегда знает ТОЛЬКО сервер (в дальнейшем будем называть её «соль»). Которая никогда не передаётся на клиент. Зачем? Сейчас поймёте.
Суть в том, что мы шифруем md5 соль и добавляем в конец её наш пароль, в результате чего получаем строку длиннее 32 символов и еще раз хешируем её.
Даже если хакер отловит эту строку в процессе передачи он все равно никогда не сможет восстановить пароль т.к. он не знает части исходной строки, и не хеш не содержит всех данных.

Как это работает?

При регистрации пользователя генерируем случайную строку, например так:
function salt(){
$letters = array("a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","r","s","t","!",".","%");
$salt="";
for($i=0;$i<10;$i++)$salt.=$letters[rand(0,20)];
return $salt;
}


Далее кладём в базу данных такую строку: md5(md5($salt).$password). И конечно же саму соль.

При авторизации же мы сначала получаем нашу соль по имени пользователя, а потом проверяем совпадают ли хеш пароля только что введенного пользователем и соли лежащей в базе, с уже готовым хешем.
Ошибки быть не может :)
 
 
astraller
Системные требования:
- Доступ к .htaccess.
- Наличие mod_rewrite.

Как это работает?
В .htaccess мы пишем следующий код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?trans=$1 [QSA]
т.е. все запросы за исключением запросов к уже существующим файлам перенаправляются на index.php. Таким образом если пользователь обратится к несуществующему файлу, он попадёт на фаил index.php.

Кроме того эта схема даёт возможность сразу использовать ЧПУ.
В начале работы парсим переменную trans:
if (isset($_GET['trans'])){
     $link=explode('/',$_GET['trans']);
}else{
     $link=0;
}
И уже на основе массива $link делаем остальную навигацию.
 
 
astraller
Поиграв в немало игр стал замечать что во всех них есть интересный момент - начало как правило захватывающее, сулящее огромные перспективы, возможности и кучу приятностй.
По мере же игры все больше и больше разочаровываешься. То здесь недоделали, то там глюк, тот тут важный момент не учтен...

В один прекрасный момент созрела таки идея - написать свою, учтя там все возможности, используя все изюминки и т.д.
Но история опять повторилась. В начале все было просто прекрасно. Была куча желающих помочь, куча интересных идей... Как и следовало ожидать 90% этих людей было просто игроками, которым нужно было общение. Ибо за словами дело и встало.
Сложилось так что у нас не оказалось дизайнера. Казалось бы - на первых порах не столь важно, ан нет, даже тем единицам которые были знакомы с программированием стала претить сама мысль что работать придется не с проработанными, красивыми изображениями, а с временной заменой нарисованной на коленке.
В общем остался один я и мой старый знакомый - ни разу не программист, но человек не глупый.
В общем все дело встало на том что на JavaScript нормальную клиентскую часть не сделаешь, и я начал изучать Flash.
Но именно в этот момент я и понял почему большинство игр развивается по такому сюжету.
 
 
astraller
03 Апрель 2008 @ 10:10
Все написанное ниже чисто моя ИМХА которая ни на что не претендует, но может оказаться полезной начинающим:
SEO с чего начать?

Каждый WEB-мастер однажды задумывается над так называемой раскруткой. Так что же за зверь эта раскрутка и с чего её следует начать? Как раз об этом и повествует текст идущий далее.

Что такое раскрутка – это процесс изменения внутренних и внешних характеристик сайта с целью увеличения его рейтинга в поисковых системах. (под рейтингом здесь понимается позиция в результатах поиска)

Для того чтобы не приучать уважаемого читателя далее к вульгарному слову раскрутка, я буду называть его литературно – оптимизация.
Оптимизацию можно разделить на 3 этапа:
  • Внутренняя оптимизация
  • Внешняя оптимизация.
  • Слежение и корректировка.
Разберем их по порядку.

Внутренняя оптимизация.

Если на сайте есть страница, то она должна нести какую-то единую мысль!
Первое что должен сделать каждый уважающий себя оптимизатор это определить основную мысль всех своих страниц.
Важно! Не содержимое страниц надо писать под основную мысль, а выводить основную мысль из содержимого!

Каждая страница должна иметь свой уникальный заголовок!
Вторым действием должно быть формирование из этой мысли заголовка страницы (содержимого тега <title>)(само собой, для каждой страницы).
Важно! На каждых двух страницах, где одинаковый заголовок вы теряете потенциальных посетителей, т.к. обе они будут релевантны одинаковым запросам!

Каждая страница должна иметь уникальное описание!
Третьим вашим действием в ходе оптимизации сайта должно быть написание (или формирование скриптами) описаний страниц. (под описанием здесь понимается содержимое тега <meta name="description">)
Важно! Если вы хотите чтобы ваши пользователи видели в результатах поиска, под ссылкой на страницу не случайные строки содержимого, а текст, который написали вы, и который их привлечет, то вам придётся писать описание!

Страницы должны быть расположены как можно ближе к главной странице!
Дальше вы должны изменить структуру сайта так, чтобы на любую страницу вашего сайта можно было попасть, нажав не более чем на 3-4 ссылки!
Важно! Это нужно и для людей (которым нравятся сайты, где не надо пройти по 110 разделам, прежде чем найти то, что они ищут) и для поисковиков (которые сайт с 110 вложениями будут индексировать 110 месяцев).

Содержимое страниц должно быть размечено соответственно канонам HTML.
Если <h1> подразумевается как заголовок первого уровня, то он и должен им быть! Если тег <b> должен выделять те части текста, на которые вы хотите обратить внимание, то так оно и должно быть! Не надо пол страницы пихать в <h1>, а остальные пол в <b>, ни к чему хорошему это не приведет!
Важно! Поисковые системы способны по % текста в тегах выделения определять правильно их использовали или нет. Помните это!

То что в <title> должно соответствовать тому что в <h1>.
Титл – это заголовок страницы, H1 – это заголовок текста, не правда - ли логично писать в них одно и тоже. Поисковики думают так же.

Внешняя оптимизация

Ссылок не бывает много!
Это тот девиз, которым руководствуются все оптимизаторы. Если у вас есть возможность поставить ссылочку на страничку своего сайта – не упустите её, будь то подпись на форуме, или поле в форме гостевой книги.
Важно! Это не должно доходить до фанатизма. Не имеет смысла бегать по форумам и гостевым и гадить туда ссылками!

Грамотная ссылка – залог успеха.
Понятие грамотной ссылки складывается из ряда факторов. 1 – она должна привлекать внимание людей, 2 – она должна быть релевантна странице, на которую ссылается.
Важно! В идеале текст (анкор) ссылки должен быть равен заголовку страницы на которую она ссылается.

Одна голова хорошо, а с туловищем – лучше!
Многие вкладывают в слово оптимизация набивание сотен тысяч ссылок на главную страницу. Они не правы. Правильная оптимизация это когда большая половина ссылок идёт на внутренние страницы сайта, тем самым, поднимая их в результатах поиска. Как следствие человек попадает сразу туда, куда хотел, и ему уже нет нужды блуждать дальше по сайту.
Важно! Я сказал «большая половина» подразумевая то что «меньшая половина» как раз и должны ссылаться на главную страницу, которая релевантна самым высокочастотным запросам, и требует большой ссылочной массы.

Слежение и корректировка.

Мало просто оптимизировать сайт и помочь ему достичь необходимых позиций в поисковых системах, его надо еще поддерживать там. Вот здесь нам как раз и пригодится «обвес профессионала-SEO»:
•   Google Analytics (http://www.google.com/analytics/ru-RU/) – необходим без исключения всем. В нём можно узнать, как откуда и зачем пользователь пришел к вам на сайт, посмотреть, что именно его интересовало и понять в какую сторону сайт надо развивать. Само собой показывает колличество пользователей за произвольный период времени (если надо даже в сравнении с произвольным периодом времени).
•   Google Web-master Tools (https://www.google.com/webmasters/tools/) – полезный интерфейс для управления сайтом. Там можно определить регион сайта, добавить sitemap который поможет системе Google найти все страницы вашего сайта, задать скорость сканирования страниц, разрешить или запретить системе индексировать ваши изображения.
•   Яндекс.Вебмастер (http://webmaster.yandex.ru/) – жалкая пародия на Google Web-masters Tools но надеемся что дальше она разовьётся.
•   Site Auditor (http://www.site-auditor.ru/) – неимоверно полезная программа по сбору статистики по сайтам.

Начинаем свое слежение с того, что добавляем сайт в GA(Google Analytics) и расставляем код на всех страницах сайта. Уже через несколько дней стает прорисовываться первая картина по посетителям. Откуда они идут и что им надо от вашего сайта.
Далее мы добавляем сайт в GWT(Google Web-masters Tools), доказываем им что вы хозяин сайта Улыбающийся и добавляем sitemap предварительно его создав. (Удобно создавать sitemap с помощью Sitemap Generator - http://gsitecrawler.com/) Определяем основной домен сайта (я предпочитаю с www, т.к. многие каталоги добавляют его автоматически).
Добавляем сайт в ЯВ (Яндекс.Вебмастер), зачем известно только Платону Улыбающийся
Качаем и ставим Site Auditor. Добавляем туда свой сайт путём простого определения его характеристик.

Теперь зачем нам все это надо и что мы будем с этим делать:
Смотрим в GA, какие поисковые запросы приносят нам наибольшее количество людей, добавляем их в Site Auditor и смотрим на каком мы по ним месте. Далее в GA определяем, какие странички релевантны этим запросам и ставим на них по нескольку ссылок с этим запросом в тексте (анкоре). Тем самым, повышая их релевантность запросу, тем самым, повышая их место в выдаче по этому запросу, тем самым, повышая количество людей с них.

Так же Site Auditor умеет показывать конкурентов по определенному запросу, что немаловажно, так как их можно изучить и понять, почему они выше вас в выдаче. И либо обойти их по этим параметрам, либо, если параметры запрещены к использованию попросту «написать куда надо».


Теперь хотелось бы отметить наиболее частые SEO-заблуждения:
З: Мой сайт не индексируется поисковиками уже 3 дня! Что же мне делать?
О: А что вы уже сделали, для того чтобы он был проиндексирован? Ничего? Так и не получите ничего!

З: Мой сайт проиндексировался, но люди не идут! Почему?
О: Чтобы пошли люди надо его еще оптимизировать! Ибо на 10`000 страницы выдачи доходят либо боты, либо человеко - боты и еще не известно, что хуже.

З: Я прогнал сайт по 20 каталогам! Почему я не на первой странице?!
О: Посмотрите, сколько ссылок на сайты ваших конкурентов.

З: Мой сайт вчера прогнали по базе каталогов, где мои ссылки в поисковике?
О: Ваш дом вчера начали строить, где же его крыша?

З: У меня не было вчера Интернета и мой сайт не показывался, посетители тоже не видели его?
О: Если вы не видели в живую сервер, где лежит ваш сайт, это не значит что его нет.

З: Я зарегистрировался в Google, когда он придёт индексировать мой сайт?
О: В день создаются и добавляются в Google тысячи сайтов, а так же обновляются страницы на сотнях миллионов уже проиндексированных сайтах. И несмотря на всю свою вычислительную мощность, GoogleBot придёт к вам на сайт ТОЛЬКО когда до него дойдёт очередь.

По просьбе трудящихся
[2008.03.16]

Не все йогурты одинаково полезны.
Каталоги - хороший способ получения ссылок, но среди них тоже надо научиться выбирать.
Важно! Если на каждый каталог ставить ссылку, как они просят, то через некоторое время ссылок у вас на сайте станет больше чем полезного содержимого. Не имеет смысла тратить своё время на добавление сайта в откровенно помоечные катологи и гостевые книги предназначенные только для накидывания туда ссылок. С большой вероятностью поисковик не засчитает эти ссылки и время будет потрачено зря.

И тебя посчитали!
Для чего нужен _счетчик_ - для того чтобы _считать_. Логично не так ли? Не надо увешивать сайт кучей счетчиков.
Важно! Хорошо даже когда счетчик не видим, во первых вы усложняете задачу конкурентам, во вторых на ранних этапах не отпугиваете пользователя малой посещаемостью.

Хороший каталог - известный каталог.
Известный каталог хорош тем что туда кроме ботов ходят еще и люди, ибо такой каталог выполняет свою изначальную цель - каталогизирует сайты. А не предоставляет им лишнюю ссылочку.
Важно! Примеры хороших (по моему мнению) каталогов:
http://www.dmoz.org/
http://www.google.com/dirhp/ (сюда попадают избранные сайты из DMOZ)
http://catalog.yandex.ru/


[2008.03.25]

Форум? В поддомен!
И дело здесь не только в том что так красивее и солиднее, сколько в том что удобнее для раскрутки!
Важно! Многие каталоги запрещают ставить ссылки на подкаталоги сайта, с поддоменом этих проблем нет. Так же удобнее использовать отдельную статистику для поддомена в GA.

Поддомены одним файлом!
Дешево и сердито - .htaccess.
В самое начало вставляем строки:
Код:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/forum
RewriteCond %{HTTP_HOST} ^forum.
RewriteRule ^(.*)$ forum/$1 [L]

PS Считаете что где-то я не прав? Велком обсуждать - если сумеете мне доказать свою правоту - статью поправлю.
 
 
astraller
03 Апрель 2008 @ 10:05
Вот и открыл я эту богодельню.

Буду пости теперь сюда свои измышления и глупости.
 
 
Музыка: кулер шумит и дует в ухо :)