-Поиск по дневнику

Поиск сообщений в web_developer

 -Подписка по e-mail

 

 -Постоянные читатели

 -Сообщества

Читатель сообществ (Всего в списке: 1) Темы_дня

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 24.10.2007
Записей:
Комментариев:
Написано: 28





Изучаем PHP вместе с IBM

Среда, 07 Ноября 2007 г. 20:47 + в цитатник
На сайте IBM в разделе для разработчиклв нашол парочку статей дла начинающих php кодеров. Если вам раньше не приходилось сталкиваться с PHP, но вы хотите научиться писать Web-ориентированные приложения, то начните изучение с данного пособия, которое является первой частью в серии из трех учебных пособий. PHP является языком скриптового типа, он очень прост в изучении, но с его помощью можно строить достаточно сложные приложения с широкой функциональностью. Это учебное пособие научит вас писать несложные приложения, строить PHP-страницы с использованием HTML-форм и получать доступ к базам данных.

Адрес: Заглавная страницаБазовый синтаксис PHPФормы и PHPФункцииВзаимодействие с базой данных MySQLНаведем порядок: включение кода из файлов     
Рубрики:  полезные советы


Понравилось: 19 пользователям

Десять ошибок, которые губят web-сайты

Вторник, 06 Ноября 2007 г. 00:12 + в цитатник

Вы потратили много времени и денег на создание собственного сайта. Вы же не хотите совершать такие ошибки, которые, в лучшем случае, будут раздражать пользователей, а в худшем - приведут к тому, что вы просто потеряете клиентов? В конце концов, если вы настраиваете против себя пользователей, то вы теряете прибыль. А кому это по карману?

Якоб Нильсен, директор Нильсен Норманн Групп, утверждает, что существует десять самых распространенных ошибок:

1 Отсутствие цен. Цена - это часть минимальной информации, необходимой пользователям, чтобы понять суть предложения. Если цены отсутствуют, то посетители могут просто не понять о чем идет речь. Указание цен позволяет отличать один товар от другого.

2 Негибкие поисковики. Чересчур «образованные» поисковики снижают юзибилити, поскольку пользователи могут допустить опечатку или не знать как правильно пишется слово. Поисковики также должны отдавать приоритет не количеству вариантов запросов, а важности каждого документа.

3 Горизонтальное прокручивание. Пользователи ненавидят, когда их заставляют осуществлять прокрутку слева на право. Страницы, которые требуют горизонтального прокручивания в стандартном окне (800*600 пикселей) просто ужасны!

4 Фиксированный размер шрифта. В 95% случаев фиксированный шрифт имеет просто крошечные размеры, снижая удобочитаемость страницы. Пользователи должны иметь возможность самостоятельно изменять размер текста по необходимости.

5 Блоки текста - их скучно читать, что приводит к потере пользователей.

6 JavaScript в ссылках. Если ссылка ведет себя непредсказуемым образом, то пользователи чувствуют себя потерявшимися. Они также ненавидят поп-апы.

7 Нечасто задаваемые вопросы в FAQ. Не указывайте вопросы, которые бы вы хотели, чтобы вам задали.

8 Сбор e-mail адресов при отсутствии политик неразглашения информации. Когда web-сайты просят e-mail, пользователи обычно реагируют отрицательно. В наше время спама никто не хочет вот так просто сообщать такую информацию.

9 URL длиной больше 75 знаков, которые почти невозможно отправить другу. Если URL слишком длинный и весь не виден в строке адреса, то пользователи просто не будут знать, как его скопировать. А если ссылка не работает, то они могут не знать, как вернуться на изначальную страницу.

10 Ссылки «mail to» в неожиданных местах. Не размещайте такие ссылки под именами, вместо этого четко укажите, что это e-mail адрес.

Существует множество компаний, которые могут помочь вам избежать подобных ошибок.
Старайтесь избегать этих 10 ошибок, указанных Нильсеном, при создании своего web-сайта, и пользователям он понравится, что повлияет на уровень посещаемости.

Рубрики:  полезные советы

Руководство по эффективному использованию CSS

Воскресенье, 28 Октября 2007 г. 21:00 + в цитатник
ТЕХНОЛОГИЯ CSS (CASCADING STYLE SHEETS) ПРЕДНАЗНАЧЕНА ДЛЯ ОФОРМЛЕНИЯ СТРУКТУРИРОВАННЫХ ДОКУМЕНТОВ В ФОРМАТАХ HTML, XHTML, XML. МЫ РАССМОТРИМ СУТЬ ДАННОЙ ТЕХНОЛОГИИ И ОСОБЕННОСТИ ЕЕ ИСПОЛЬЗОВАНИЯ НА WEB’Е. НАЧИНАЮЩИМ ИНТЕРНЕТ-РАЗРАБОТЧИКАМ ЭТА СТАТЬЯ ПОМОЖЕТ ОБОЙТИ ЧНГ (ЧАСТО НАСТУПАЕМЫЕ ГРАБЛИ) И ПОЗВОЛИТ СОЗДАВАТЬ ДИЗАЙН, ОДИНАКОВО ПОДХОДЯЩИЙ ПОД РАЗНЫЕ ТИПЫ БРАУЗЕРОВ

Данная публикация не является академическим трудом и не претендует на полноту и всесторонность. Она отражает мой опыт и призывает умного читателя не допускать ошибки, сделанные когда-то другими людьми. Несмотря на то, что сейчас практически ни один сайт не обходится без CSS, по-настоящему грамотно эту технологию использую немногие. Есть стандарты, куча хороших доков, мануалов и пудовых книг. Существует даже иллюзия того, что сайты работают правильно и выглядят так, как нужно. Однако стоит разработчику или тестировщику открыть альтернативный браузер, перегрузиться в альтернативную операционку или сесть за компьютер, работающий на «иной» платформе, — как его озаряет откровение. Почему? Дело в том, что различные браузеры по-своему трактуют стили, которые ты так тщательно оттачивал, руководствуясь благими стремлениями сделать сайт-конфетку. В большей мере баги при работе со стилями относятся к устаревшим браузерам, однако некоторые вполне современные программы не перестают удивлять web-дизайнеров. Но об этом чуть позже... Я уже слышу злобное ворчание поборников стандартов и фанатов валидных сайтов. Спешу провозгласить: «плохих и дурацких браузеров» нет! Стандарты хороши там, где их соблюдение не доставляет неудобства конечному потребителю — пользователю сайта. В ситуации, когда сколько-нибудь значительная часть интернет-аудитории продолжает пользоваться смотрелками, не поддерживающими (полностью) рекомендации W3C, web-девелоперам не остается ничего, кроме как учитывать особенности этих программ при разработке своих проектов. Итак, обратим взоры в далекое, по меркам отрасли, прошлое.

экскурс в историю
В начале было слово, точнее — целый язык, отцом которого стал англичанин Тим Бернерс-Ли. Язык предназначался для разметки и элементарного структурирования гипертекстовых документов и был назван HTML. Вместе с ним были разработаны первые web-сервер и браузер, что ознаменовало рождение web’а — всемирной паутины в том виде, в котором мы привыкли видеть его. До тех пор пока этим достижением научной мысли пользовались его создатели, ученые, все было замечательно.

Через пару лет после рождения web’а им заинтересовался Большой Бизнес, узрев в нем потенциальные сверхприбыли. Скучный «первородный» язык разметки web-страниц в силу скудости оформительских возможностей не отвечал растущим потребностям, и HTML начал обрастать дополнениями, которые позволили перевоплотить внешний вид сайтов из унылых листовок в красочные проспекты. В индустрию потянулись новые люди — дизайнеры, и постепенно стало забываться слово «web-мастер», которым на заре интернета называли человека, разрабатывающего и поддерживающего сайт.

как это работает
Как уже было сказано, технология CSS описывает внешний вид отображаемого документа во исполнение принципа отделения контента от его представления. Для противников принципиальности поясню: а) это облегчает поддержку сайта (позволяет быстро сменить дизайн); б) упрощает структуру документа и уменьшает время загрузки за счет вынесения повторяющихся инструкций в одно правило (класс); в) повышает доступность документа за счет предусмотренной настройки внешнего вида документа с учетом возможностей различных типов устройств вывода (дисплея, принтера и т.д.) и даже под нужды конкретного пользователя.

Браузер работает с CSS следующим образом:

1 ПАРСИНГ HTML-ДОКУМЕНТА И СОЗДАНИЕ ДЕРЕВА ЭЛЕМЕНТОВ;

2 ИДЕНТИФИКАЦИЯ ЦЕЛЕВОГО ТИПА МЕДИА (УСТРОЙСТВА ОТОБРАЖЕНИЯ);

3 ПОЛУЧЕНИЕ ВСЕХ СТИЛЕЙ ДОКУМЕНТА В СООТВЕТСТВИИ С УКАЗАННЫМИ ТИПАМИ МЕДИА;

4 АННОТАЦИЯ КАЖДОГО ЭЛЕМЕНТА ПУТЕМ ПРИСВОЕНИЯ СВОЙСТВАМ ЭЛЕМЕНТОВ ЗНАЧЕНИЙ ИСХОДЯ ИЗ УКАЗАННЫХ ДЛЯ НИХ СТИЛЕЙ, А ТАКЖЕ С УЧЕТОМ НАСЛЕДОВАНИЯ РОДИТЕЛЬСКИХ;

5 ГЕНЕРАЦИЯ СТРУКТУРЫ ФОРМАТИРОВАНИЯ НА ОСНОВЕ ДЕРЕВА ДОКУМЕНТА;

6 ПЕРЕДАЧА ФОРМАТИРОВАННОГО ДОКУМЕНТА НА ВЫВОД (ДИСПЛЕЙ, НА ПЕЧАТЬ И Т.Д.).

Для web-страниц существует три типа подключения стилей, которые разграничивают по источнику:

1 АВТОРСКИЕ СТИЛИ (СОЗДАННЫЕ РАЗРАБОТЧИКАМИ САЙТА), КОТОРЫЕ, В СВОЮ ОЧЕРЕДЬ, МОГУТ ПРИМЕНЯТЬСЯ ТРЕМЯ РАЗЛИЧНЫМИ СПОСОБАМИ:

А) ВНЕШНИЕ ТАБЛИЦЫ СТИЛЕЙ.

РАСПОЛАГАЮТСЯ В ОТДЕЛЬНОМ ФАЙЛЕ *.CSS, НА КОТОРЫЙ ДАЕТСЯ ССЫЛКА В HTML-ДОКУМЕНТЕ. НАПРИМЕР:

<style type="text/css" media="screen">@import url(/styles/screen.css);</style>

В) ВСТРОЕННЫЕ СТИЛИ.

КОД CSS ПОМЕЩАЕТСЯ В ТЕЛЕ HTML-ДОКУМЕНТА: <style type="text/css" media="screen">.style {font-family: Verdana,sans-serif}</style>

С) СТРОЧНЫЕ СТИЛИ, КОТОРЫЕ ПРИМЕНЯЮТ ИНДИВИДУАЛЬНО ДЛЯ КОНКРЕТНОГО ЭЛЕМЕНТА И УКАЗЫВАЮТСЯ В АТРИБУТЕ STYLE НУЖНОГО НАМ ТЕГА:

<p style="font-weight:bold">

2 ПОЛЬЗОВАТЕЛЬСКИЕ СТИЛИ.

НЕКОТОРЫЕ БРАУЗЕРЫ (НАПРИМЕР OPERA) ПОЗВОЛЯЮТ ПОЛЬЗОВАТЕЛЮ СОЗДАВАТЬ СОБСТВЕННЫЕ СТИЛИ, КОТОРЫЕ ХРАНЯТСЯ В ЛОКАЛЬНОМ CSS-ФАЙЛЕ И ИСПОЛЬЗУЮТСЯ ДЛЯ ОПРЕДЕЛЕНИЯ СТИЛЕЙ НА ВСЕХ ПРОСМАТРИВАЕМЫХ СТРАНИЦАХ. ЭТУ ВОЗМОЖНОСТЬ ОБЫЧНО ИСПОЛЬЗУЮТ ЛЮДИ С ПЛОХИМ ЗРЕНИЕМ ИЛИ С ДЕФЕКТАМИ ЦВЕТОВОГО ВОСПРИЯТИЯ.

3 СТИЛЬ БРАУЗЕРА.

«ЗАВОДСКИЕ НАСТРОЙКИ», ПРЕДУСМОТРЕННЫЕ РАЗРАБОТЧИКАМИ ДЛЯ ОПРЕДЕЛЕНИЯ ПРЕДСТАВЛЕНИЯ ЭЛЕМЕНТОВ HTML ПО УМОЛЧАНИЮ.

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

практика
Для успешного освоения CSS-верстки нужно усвоить особенности реализации блочной модели в различных браузерах. В соответствии со стандартной моделью, ширина блока не включает в себя отступы (padding) и границы (borders). Эта модель поддерживается во всех современных браузерах за исключением Internet Explorer (до версии 6), который имеет собственное мнение по данному вопросу. В блочной модели IE ширина отступов и границ включается в ширину блока за счет уменьшения размера области контента, как показано на иллюстрации. Такая же модель используется и в бродилках Netscape 4 и Opera 7.

Грядущая спецификация CSS3 вводит свойство «box-sizing», позволяющее выбирать нужную модель, указывая значение «content-box» для использования стандартной модели, и «border-box» — для использования модели IE. Браузер Mozilla, поддерживающий черновые рекомендации CSS3, уже поддерживает это свойство под собственным именем «-moz-box-sizing». Разработчики также ввели еще одно, на данный момент нестандартное значение (и еще одну блочную модель) — «padding-box», которым подразумевается, что ширина блока равна ширине области контента и отступов, исключая границы.

Хороший и правильный (X)HTML-код начинается с правильного указания типа документа (DOCTYPE). Эти сведения необходимы браузеру для выбора режима рендеринга документа. Если тип не декларируется либо при его объявлении допущены ошибки, документ рендерится в особом «режиме несоответствия стандартам» (quirks-mode) и руководствуется при этом не логикой рекомендаций W3C, а собственным разумением. Хотелось бы обратить внимание web-девелоперов на необъяснимый глюк в IE6: верстая в XHTML 1.0 Transitional, нельзя указывать пролог (<?xml version="1.0"?> ), так как он приводит к рендерингу документа в quirks-mode, несмотря на то, что все сделано правильно. К счастью, пролог является необязательным элементом и его можно смело удалить.

Для CSS справедливы «правила хорошего тона», которыми программеры пользуются при написании кода. Аккуратность, выверенная логика, привычка комментировать код и стремление к оптимизации сослужат тебе хорошую службу. Код, подобный приведенному ниже, запросто может быть оптимизирован на 20%-30%, приобретя при этом приятную чистоту и прозрачность. Нужно ли говорить о том, насколько благотворно это отразится на быстроте загрузки файла со стилями?

Было Стало
P {
color: #336699;
border-style : solid;
border-width : 1px;
border-color : #ff0000;
font-weight : bold;
line-height : 1.3em;
margin-bottom : .7em;
margin-left : .4em;
margin-right : 1.3em;
margin-top : .7em;
border-color: #c06565;
}

P {
border: 1px solid #f00;
font-weight : bold;
color: #369;
line-height : 1.3em;
margin: .7em 1.3em .7em .4em
}


хаки без хакеров

Специфика реализации каскадных стилей в различных смотрелках заставляет web-разработчиков искать способы «вправить мозги» программам, имеющим собственный, оригинальный взгляд на вещи. В результате получаем: одинаковое отображение страницы в большинстве браузеров... и невозможность пройти валидацию CSS. Такие хитрости называют хаками либо CSS-фильтрами. Избирательность возможна благодаря глюкам отдельных версий браузеров, что позволяет «скармливать» нужный код конкретной программе, в то время как другие его проигнорируют. Соответственно, о соблюдении стандартов не может быть и речи.

Например:

/* Стандартная блочная модель */
селектор { width: 100px; padding: 10px; border:10px; }
/* Подгоняем внешний вид блока в IE под стандартную модель*/
* html селектор { width: 140px; padding: 10px; border:10px; }

Код, приведенный выше, поможет в борьбе с монстром от Microsoft, но для Opera 5 и Netscape 4 придется подыскать другие способы наставить их на путь истинный. К примеру, для Netscape можно использовать его неприятие конструкции @import, а для Opera — . Если ты готов пожертвовать валидностью своего кода, хаки здорово облегчат тебе жизнь. Нужно лишь помнить о том, что универсальных хаков не существует, — вставая на скользкий путь одурачивания браузеров, нужно припасти лекарства для обширного зоопарка смотрелок. Богатая библиотека CSS-фильтров расположилась по адресу www.dithered.com/css_filters/css_only.

Нельзя обойти вниманием еще один курьез от Microsoft: корпорация сама создала лекарство для лечения болезней собственных браузеров. Речь идет о проприентарных тегах (в терминологии авторов — Conditional Comments), позволяющих «подсунуть» нужные стили для Internet Explorer 5.x

<!--[if IE 5]>
<link rel="stylesheet" type="text/css" href="css/IE5.css" />
<![endif]-->

Более разумной, с точки зрения стандартов, альтернативой хакам и проприентарным тегам может послужить использование Javascript для определения типа браузера. Однако параноидальные пользователи, отключая исполнение скриптов в браузерах, не позволяют использовать данное решение как панацею.

печать

CSS предоставляет нам блестящую возможность больше не заботиться о создании страниц с printer-friendly версиями документов. В первую очередь скроем функциональные блоки, бесполезные в твердой копии страницы, при помощи значения «none» свойства display;. Это большая часть дизайнерских наворотов в шапке и подвале страницы, а также навигация, баннеры и все прочее, что не имеет прямого отношения собственно к контенту. Поскольку принтеры имеют более высокое разрешение, имеет смысл скрыть также и логотип сайта и отдать принтеру другой (можно даже черно-белый) — с более высоким разрешением. Для этого создай блок со вторым логотипом и скрывай его в версии для дисплея. Подобным образом, например, поступила команда Артемия Лебедева — они создали таблицу стилей для печати страниц сайта Студии.

Для печати принято задавать размер кегля шрифта в пунктах (типографская единица измерения), и будет вполне логичным поступить таким же образом и при создании стилей для принтера. В результате пользователи получат буквы оптимального размера, привычные им по распечаткам документов Microsoft Office.

Отдельного упоминания заслуживают фоновые изображения. Поскольку шансы на то, что текст будет читаться так же хорошо, как и на экране, минимальны (большинство пользователей печатают на ч/б), смело отменяем использование картинок на бэкграунде. Также не помешает оптимизация палитры для придания ей максимальной контрастности. Идеал — белый фон и черный текст. Если ты все же решил использовать в стилях для печати не только оттенки серого, не поленись проверить, как будет выглядеть твое буйство красок, если его распечатают на стареньком монохромном лазернике.

На благодарном поприще создания стилей для печати разработчика поджидают несколько подводных камней. Один из них — ошибка в Mozilla (касается всех браузеров, основанных на движке Gecko — Firefox, Netscape, Camino и др.), связанная с печатью блочных элементов, для которых задано свойство float. Баг выражается в том, что независимо от размеров блок распечатывается только на одной странице. Все, что не поместилось на нее, игнорируется. Решение проблемы просто, как советские трусы за рупь двадцать: назначаем свойству float значение «none» и радуемся жизни.

Хотелось бы упомянуть рацпредложение Эрика Майера, выдвинутое в его статье «CSS. Going to Print» на сайте A List Apart. Суть новации такова: при распечатывании документа, содержащего ссылки, естественным образом теряются адреса URL (кто там кликает на листе бумаги?). Пытливый ум нашего буржуйского коллеги нашел выход из данной ситуации — применил в стилях для печати достижения CSS2. Результатом их работы станет появление после текста самой ссылки адреса URL в скобках. Эта красота работает в браузерах Mozilla и Netscape 6.x.

a:link:after, a:visited:after {
content: " (" attr(href) ") ";
font-size: 90%;
}

Кроме принтеров, есть смысл создавать отдельные стили и для наладонников, которые отличаются маленьким экраном с ограниченным разрешением и медленным (и часто дорогим) соединением с интернетом. Как сделать это, читай на сайте Александра Качанова (снимаю шляпу!) www.webmacson.com. Прочие типы устройств вывода, равно как и голосовые браузеры, пока недостаточно распространены... хотя бы для того, чтобы протестировать на них свой сайт. Так что можно не распыляться и сосредоточиться на популярных медиа :). Исключение составляет, пожалуй, телеприставка WebTV, в прошлом популярная в Штатах. Она характеризуется низким разрешением, меньшей четкостью и более узким, чем RGB, цветовым пространством — все это издержки конструктивных особенностей телевизоров, которые используются как приставки в качестве монитора.


Автор: ВЛАДИМИР СИНЕЛЬНИКОВ, Спецвыпуск: Хакер, номер 67
Рубрики:  полезные советы

Обзор форумов

Четверг, 25 Октября 2007 г. 23:11 + в цитатник
Рано или поздно любой администратор сколь либо значимого интернет-проекта приходит к мнению, что пора улучшать обратную связь с посетителями проекта. Для многих проектов самыми лучшими вариантом является форум. Форумных движков  так много, что можно запутаться при выборе наиболее подходящего. Я не ставил себе целью провести тотальное сравнение функций различных форумов - для этого есть специальные сайты. Я дам лишь небольшое описание каждому из движков, основываясь на двух критериях: удобство для пользователей и удобство для администратора.

phpBB
Адрес в сети: http://www.phpbbguru.net/

phpBB  не зря является самым популярным скриптом форума - он в меру прост и удобен, а его стандартная тема subSilver является практически эталоном тем для форумов. Админка неплоха, но мне не нравится её устройство - я бы предпочел видеть один не разделенный на фреймы экран с единой полосой прокрутки. Так же не нравится отсутствие поддержки плагинов - любые изменения, по сути, являются модами и хаками, что неизбежно скажется при апдейте движка. Думаю, что со временем на смену большинству инсталляций phpBB2 придет более современный phpBB3, разработка которого идет уже давно и сейчас находится в своей завершающей стадии. Инсталлятор удобен и понятен, хотя, можно было бы уменьшить количество шагов. Админка функциональна, но требует времени, чтобы с ней разобраться (для меня осталось загадкой, почему тему или перевод нельзя просто скопировать в нужную папку, а надо еще “устанавливать”, чтобы она появилась в списке). Сразу что-либо сделать не получается - нужно сначала подумать, где находится нужная функция и как с ней работать.  В общем, движок функциональностью не обделен и, наверняка, будет очень популярен (не удивлюсь, даже если популярнее предыдущей версии), но интерфейсу явно не хватает интуитивности и удобства. Это ваш выбор, если если вы хотите “форум-стандарт” и вам не потребуется дополнительных функций. Для любых сообществ, независимо от размера и тематики.

Simple Machines Forum
Адрес в сети: http://www.simplemachines.org/

SMF - один из  “тяжеловесов” в данном обзоре. Причем, свое звание он оправдывает полностью. Половину места в установленном форуме занимают шаблоны дизайна (в стандатной поставке идет три темы, в сумме ~2,5 мб). Скорее всего, у движка большие проблемы с разделением логики и представлением данных - я бы не полез разбираться с этим, не вооружившись хорошим мануалом. Зато админка порадовала - функционально и просто. SMF - неплохая альтернатива распространенному phpBB - он гораздо функциональнее, чем phpBB2 и в то же время удобнее и понятнее, чем phpBB3.

punBB
Адрес в сети: http://www.punbb.ru/

Очень легкий и приятный форум. Большим минусом является отсутствие системы персональных сообщений - хотя существует дополнение, которое это исправляет. Движок поддерживает плагины, которые вы можете включать и отключать когда захотите. Система администрирования проста и удобна. punBB подойдет тем, кто ищет нужен легкий, функциональный и удобный форум не обремененный излишней функциональностью.

Vanilla
Адрес в сети: http://getvanilla.com/

Этот скрипт форума отличается от других своей модульностью. В начальном виде это легкий форум, но с помощью аддонов можно добавить любую функциональность. По сути, Vanilla - это платформа-конструктор для создания сообщества с нужными функциями. Админка вполне нормальная, цветовое решение тоже.  Данный форум подойдет если вы хотите создать нечто большее, чем форум - с помощью аддонов форум превращается в уникальную платформу для различных сообществ.

Автор: 44px.net

Рубрики:  бесплатные CMS

Метки:  

SQL injection

Четверг, 25 Октября 2007 г. 00:35 + в цитатник

SQL Injection – внедрение произвольных sql-команд, в результате которого меняется логика оригинального запроса к базе данных. Это представляет серьезную угрозу, так как таким образом злоумышленник может утянуть из нее конфиденциальную информацию. Типичный пример — через ошибки в web-интерфейсе у разных провайдеров не раз крали базы с логинами и паролями пользователей.

Успешность атаки SQL Injection не зависит от используемого для написания web-приложений языка программирования - будь то PHP, Perl или ASР. Если сценарий работает с базами данных, а проверка входных параметров отсутствует, то всегда есть возможность внедрения sql-кода. Это относится не только к web-приложениям, но и к обычным программам, которые работают с базами данных

Как это происходит

Чтобы не грызть сухую теорию, давай рассмотрим небольшой пример. Допустим, у тебя на сервере баз данных есть своя база, а в ней - таблица Users, в которой хранится информация обо всех зарегистрированных пользователях. Как правило, такие таблицы имеют минимум три поля: id (идентификатор), UserName (имя пользователя) и Password (пароль). Допустим, для того чтобы посмотреть профиль пользователя, используется следующий запрос к базе данных:

SELECT * FROM UsersWHERE id = переменная

В данном примере видно, что значение поля id будет сравниваться со значением переменной. Если в качестве значения переменной указать, например, 10, то честный пользователь увидит свой профиль. Вроде все хорошо и прекрасно, но что будет, если модифицировать запрос до такого вида:

SELECT * FROM Users WHERE id = переменная OR UserName = “Администратор”

После выполнения такого запроса отобразится запись не только с id = значению переменной, но и запись, в которой значение поля UserName = Администратор. То есть после такого запроса хакер увидит всю информацию об учетной записи «Администратор».

www.site.ru/profile.php?id=10 OR UserName=’Администратор’

На этом примере видно, что после того, как мы дописали к URL дополнительные sql-команды (OR UserName=…), логика запроса изменилась. Отсутствие фильтрации входных параметров - вот причина, из-за которой появилась возможность воспользоваться SQL Injection! Чтобы этого не произошло, необходимо перед выполнением запроса в сценарии кое-что проверить. В данном случае достаточно просмотреть содержимое одной (это при условии, что остальные переменные нигде не видны, но лучше проверять все) переменной id: в ней не должно быть никаких символов, кроме цифр от 0 до 9.

Проблема специальных символов

Знатоки языка запросов SQL знают, что с помощью специальных символов можно полностью изменить логику запроса и обойти многие ограничения, которые изначально придумывал программист.

Одинарные и двойные кавычки

Их используют для выделения значений. Предыдущий пример (UserName = 'Администратор') как раз об этом. Первое, с чего начинает хакер свое исследование, это попытка вставки одинарной кавычки вместе со значением переменной. Если отсутствует фильтрация на спецсимволы, то взломщик увидит ошибку, сгенерированную сервером БД. В результате он уже точно будет знать, что есть возможность внедрить свой sql-код.

Значит, в своем сценарии надо отключить вывод любых ошибок. Лучше в момент возникновения ошибки вывести свой текст, чем текст, который сгенерирует сервер БД.

Двойное тире

Два тире подряд в SQL означают начало комментария. То есть все, что будет после двух знаков тире, не будет восприниматься как часть запроса. Рассмотрим пример:

SELECT * FROM Users WHERE UserName=root AND Password= переменная

Это запрос должен выбрать запись, где поле UserName равно root (как правило, в основном это имя используется для обозначения супер-пользователя), а поле Password равно значению переменной. Имя мы знаем, а пароль, естественно, нет. Но это не повод отчаиваться - можно умудриться модифицировать запрос до такого вида:

SELECT * FROM Users WHERE UserName=root--AND Password = переменная

В результате, код, который стоит после двух знаков тире (AND Password = переменная), не будет выполнен, и, следовательно, мы успешно проходим данную проверку, зная одно лишь имя пользователя.

В SQL есть еще пара символов, которые обозначают комментарий, — «/*». Если вдруг оказывается, что знак тире фильтруется, то можно воспользоваться «/*». Принцип действия тот же самый. Весь текст запроса, который стоит после этих символов, не будет выполняться, а значит, можно отбросить лишние проверки и обойти защиту.

Знак равенства

Казалось бы, чем может грозить простой знак равенства (=)? Но при правильном подходе и отсутствии фильтрации этого символа знак равенства превращается в боевое оружие. Пример:

SELECT * FROM Users WHERE id= переменная

Взломщик может без проблем в качестве значения переменной подставить «1 OR UserName=Aдмин», и запрос легким движением руки превратится в:

SELECT * FROM Users WHERE id = 1 OR UserName=Админ

Результат этого запроса вернет запись, где поле id равно единице или поле UserName равно «Админ». Теперь представь, что было бы, если бы знак равенства всегда отрезался. Запрос уже выглядел бы следующим образом:

SELECT * FROM Users WHERE id = 1 OR UserNameАдмин

Этот запрос неверный, поэтому он не будет выполнен сервером БД, а значит, взломщик останется с носом.

Точка с запятой

Знак «;» тоже относится к специальным символам, он используется для разделения запросов между собой. Любой сервер БД может выполнять несколько действий одним запросом, но для этого каждое действие в запросе должно быть отделено друг от друга точкой с запятой. Как этим можно воспользоваться?

SELECT * FROM Users WHERE id = переменная

Теперь, если представить, что в переменную, с которой сравнивается значение поля id, вписывается такое значение:

1; DELETE FROM Users

Запрос будет выглядеть следующим образом:

SELECT * FROM Users WHERE id = 1; DELETE FROM Users

Сначала сервер выполнит выборку из таблицы Users — запись, в которой значение поля id равно единице. А затем полностью удалит все записи из таблицы Users. Конечно, в реальной ситуации очистить все содержимое таблицы непросто, так как необходимо знать ее имя, а получить имена таблиц бывает непросто... но возможно.

Знак плюса

Знак плюса в SQL сопоставляется со знаком пробела. Допустим, что воспользоваться обычным символом пробела бывает невозможно (фильтруется он, и все тут), в этом случае можно воспользоваться знаком плюса.

SELECT * FROM Users WHERE id = 1+OR+UserName=Администратор

Такой запрос будет абсолютно корректен и успешно выполнится.

Специальные операторы

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

INSERT

Этот оператор используется для вставки новых записей в таблицу. Бывает необходимо сделать себе аккаунт (допустим, на каком-нибудь интересном форуме, где просто так не зарегистрируешься). Тогда, найдя возможность внедрения, можно добавить в запрос этот оператор.

SELECT * FROM Users WHERE UserName=root and Password=123; INSERT INTO Users values (“0”, “spider_net”, “qwerty”)

После выполнения такого запроса в таблице UserName добавится новая запись, в которой будут содержаться данные нового пользователя с логином spider_net и паролем qwerty.

LIKE

Оператор LIKE идентичен знаку «=», только используется для сравнения строк. Но многие забывают об одном нюансе, который проще показать на примере:

SELECT * FROM Users WHERE UserName LIKE переманная1 AND Password LIKE переменная2

Если для сравнения используется именно LIKE, то достаточно к значению переменной с паролем добавить символ «%». В результате запрос будет выполнен успешно, и если он используется для авторизации пользователей, то мы без проблем сможем залогинится под любым пользователем.

SELECT * FROM Users WHERE UserName LIKE root AND Password LIKE %

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

UNION

Оператор UNION служит для объединения запросов. Если удается внедрить этот оператор в запрос, то перед тобой открываются безграничные возможности. Допустим, ты нашел какой-нибудь уязвимый сценарий (например, раздел новостей), но издевательства над новостями тебя не интересует, а хочется всего лишь утянуть всю базу данных с логинами и паролями юзеров. Вот в этом случаем как нельзя кстати пригодится оператор UNION.

SELECT * FROM News WHERE id=1 UNION SELECT Id, UserName, Password FROM Users

После выполнения этого запроса помимо текста новости отобразится информация обо всех учетных записях из таблицы UserName.

OUTFILE

Думешь, что если ты нашел возможность внедрения, то единственное, чем можно управлять на атакуемом сайте, это база данных? Нет, это не так — с помощью SQL можно получить доступ и к файловой системе. Опять же, пример:

SELECT ‘Мой текст’ INTO OUTFILE ‘text.txt’

Если запрос выполнился успешно, то будет создан файл text.txt с единственной фразой «Мой текст». Конечно, если записать простой текст в файл, то выгоды будет мало. Но что если записать в качестве текста свой сценарий, который будет выполнять какую-нибудь системную функцию...

SELECT '<?php system($cmd) ?>' INTO OUTFILE 'cmd.php'

Запрос создаст php-сценарий, который будет выполнять команду из переменной $cmd. Таким же способом можно без проблем дефейснуть сайт, перезаписав файл index (если для этого есть соответствующие права).

КАК ИЩУТ УКРОМНОЕ МЕСТЕЧКО ДЛЯ SQL INJECTION

Первым делом ищут любые сценарии на сайте. Бывает так, что весь сайт выполнен в виде статичного html, а какой-нибудь один раздел (например, новости) является сценарием. Вот в нем и ищут возможность внедрения SQL Injection. Пробуют подставлять свои SQL-команды к значению переменных, которые передаются сценарию.

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

Форум и гостевые книги – отличное место для поиска уязвимостей. Стоит только узнать название и версию форума и, если он известный, можно попробовать найти уже готовый эксплойт в Сети.





Автор: SPIDER_NET@INBOX.RU
Хакер, номер #075
Рубрики:  взлом и защита

Метки:  

оптимизация php скриптов

Четверг, 25 Октября 2007 г. 00:02 + в цитатник

В этой статье я хочу дать несколько советов, следуя которым можно значительно ускорить обработку PHP-скриптов, тем самым, разгрузив сервер хостера от бесполезной работы в пользу более полезной. Перед тем как начать рефакторинг - посмотрите сколько времени и памяти кушает ваш проект, а теперь вперед - оптимизируем. После того как нелегкий труд будет закончен замерим результаты - поразительный прирост производительности - процентов 5-6% - удивлены? Давайте немного проанализируем советы приведенные в данной статье:


Выносите $переменные из “текстовых строк” - ускорение 25-40%
$x="test $test";
$x="test"; $x.=$test;
$x="test".$test;
Посчитайте кол-во таких строк в вашем проекте, я думаю их кол-во будет стремиться к нулю, если вы используете какой-нить шаблонизатор (Smarty).

Короткие переменные не более 7 символов - ускорение 15%
Читабельность кода от этого не улучшится, я обычно называю переменную по имени объекта хранящегося в ней, а имена объектов частенько переваливают за десяток символов. Но переменные от 32 символов могут тормознуть программу почти на половину.

Тормозят ли массивы в PHP? Вернее, как именно. Ускорение 40%
Доступ к элементу одномерного ассоциативного массива по имени, не заключенному в кавычки, тормозит процесс на треть (относительно того же примера, но в кавычках). А вот в двухмерном массиве программа работает медленне аж в 2.5 раза! После такого теста хочешь не хочешь, а в любой программе пожертвуешь удобством - обращение к элементам массива по имени без кавычек.
$test["aa"]=1;$test["bb"]=1;$test["cc"]=1;$test["dd"]=1;$test["ee"]=1;
$test[aa]=1;  $test[bb]=1;  $test[cc]=1;  $test[dd]=1;  $test[ee]=1;
$test[a][b]=1;$test[x][y]=1;$test[d][c]=1;$test[a][s]=1;$test[b][n]=1;

Выносите многомерные массивы из “текстовых строк” - ускорение 25-30%
При использовании многомерных массивов в строках наблюдается заметное снижение скорости Из-за многомерности нужно заключать переменные в парные фигурные скобки. Да и читабельность повыше будет.

$x="test {$myarray[name][second][1]} test";

Циклы: for, foreach, while, count/sizeof() - ускорение 15%-30%
Бесспорный вывод - использование foreach сильно тормозит дело, а между for и while большой разницы нет. (На голом тесте for/while/foreach {..} тормоза foreach - 30%). Это не удивительно, т.к. foreach делает копию массива, на что тратиться масса времени. Если нет необходимости в foreach используйте for.

Для чтения файла file() быстрее, чем fopen+цикл - ускорение 40%
Чтобы прочитать в массив $x файл размером 1Мб (100 000 строк по 10 байт) можно воспользоваться двумя вариантами: чтение файла с помощью file(), либо традиционным методом fopen/fgets. Разумеется, для файлов разного объема и содержимого скорость может меняться. Но в данном примере статистика такова: file("1Mb_file.txt") работает на 40% быстрее, чем:

$f=fopen("1Mb_file.txt","r") or die(1);
while($x[]=fgets($f,1000));
fclose($f);

Аналогичный вариант

$f=fopen("1Mb_file.txt","r") or die(1);
while($s=fgets($f,1000)) $x[]=$s;
fclose($f);

работают еще медленнее (во втором случае лишняя функция feof() заметно снижает скорость). Тот же тест, но на 15Мб файле (100 000 строк по 150 байт) показывает разницу в 50%, в пользу file().

Архитектура
Тут есть где разойтись, и начать писать весь проект заново ;) но лучше чуть-чуть напильником пошаманить - зачастую эффект будет поразительным. Для начала - не подключайте сразу все библиотеки используемые в проекте - всё только по требованию. Старайтесь разделить проект на составляющие - шаблоны проектирования еще никто не отменял.

Работа с БД
Очень много времени уходит на работу с БД, как сам факт обращения к ней, так и сама выборка из БД происходит не моментально. И что же делать? Необходимо убирать лишнее, где это возможно, а где нет - стараемся кэшировать. И уберите же обращение к БД в цикле!

Вывод:
1. Потратьте на разработку архитектуры проекта чуть больше, чем пару часиков
2. Уберите лишние обращения к БД (если первый пункт займет у вас несколько дней - то и этот не появится)
3. Используйте кэширование данных получаемых из БД или XML
4. Используйте кэширование готовых HTML страничек
5. Установите какой-нить оптимизатор PHP (XCache или Zend Optimizer)

И еще - где-то упоминалось, что страничка не должна грузиться более двух секунд - значит PHP не должен тратить более одной секунды на её генерацию.

Рубрики:  полезные советы

Метки:  

Что такое RSS-подписка и как она может помочь?

Среда, 24 Октября 2007 г. 23:35 + в цитатник
С ростом популярности блогов Вы наверняка все чаще и чаще стали замечать упоминание про RSS-подписку.  Здесь я хотел бы рассказать тем читателям, кто еще не использует RSS-подписку, о тех преимуществах, которые они могут получить, используя RSS в повседневной жизни.
Особенности RSS-подписки:
  • Во-первых, и это самое главное, RSS координально меняет концепцию получения Ваших любимых новостей с сайтов или блогов. Теперь информация сама идет к вам, а не Вы ищете ее. От Вас требуется только составить список того, что Вы хотите читать и после этого наслаждаться обновлениями.
  • Во-вторых, не нужно тратить время впустую, заходя на каждый сайт отдельно в поисках обновлений. Вместо этого достаточно всего лишь просмотреть список Ваших RSS-подписок в специальных программах и Вам сразу будут видны все обновления.

Как читать RSS-подписки?

Существует ряд программ, при помощи которых можно просматривать обновления ваших RSS-подписок. Например браузер Opera имеет встроенный функционал для работы с RSS-подписками

  • Яндекс.Лента. Ее основное преимущество - это русский язык плюс интеграция с другими сервисами от Яндекса.
  • Google Reader. Google обладает целым рядом преимуществ среди которых: удобный интерфейс, понятная навигация и многое другое.

Автор: Eltheriol
Адрес: http://eltheriol.com/
Рубрики:  полезные советы

Метки:  

Обзор бесплатных CMS 2

Среда, 24 Октября 2007 г. 23:15 + в цитатник
Продолжение обзора бесплатных систем управления сайтом.

Textpattern
Адрес в сети: http://textpattern.ru

Textpattern – система управления контентом, написанная на PHP и использует базу данных MySQL. Система эффективна как в качестве блогового движка, так и в качестве системы публикации статей и новостей. Textpattern отличается понятным интерфейсом, а также тем, что способна генерировать страницы на чистом HTML.

Textpattern позволяет создать любой сайт, предлагая для этого гибкие и функциональные инструменты: модуль управления статьями с возможностью сортировки по дате и/или по категории, модуль комментариев к статьям, поисковый модуль, наличие RSS/ATOM ленты. Устройство системы администрирования также является одной из привлекательных сторон системы. Эргономичный интерфейс очень прост и понятен и позволяет редактировать материалы и управлять сайтом без каких-либо проблем. В зоне администрирования можно установить общие настройки для всего сайта, распределить пользователей по группам (всего 6 групп с различным уровнем привилегий), посмотреть статистику посещаемости, получить доступ к диагностическим инструментам, инсталлировать плагины.

Инсталлятор поддерживает несколько языков. Выбор языка для пользовательской части или системы администрирования осуществляется в меню панели управления. Система очень ценится в англоязычными пользователями, поскольку она используется несколькими известными во всем мире web-студиями. Сообщество пользователей также активно способствует развитию системы.

Plume CMS
Адрес в сети: http://www.plume-cms.net/en

Plume CMS отличается от сотни других подобных приложений по двум основным критериям. Во-первых – это простота устройства, что предполагает высокую производительность, даже в случае выбора бесплатного хостинга (они часто славятся своей медлительностью). Во-вторых в системе полностью соблюдены стандарты, предложенные World Wide Web Consortium.
Дело в том, что многие специалисты-инженеры, дизайн студии, а так же просто компетентные люди, увлеченные web стараются привести в порядок ту техническую неразбериху, в которую превратился сегодня web.  В отличие от множества других CMS, включая ставшие, к сожалению, очень популярными SPIP И MAMBO, Plume CMS генерирует web-страницы, которые соответствую языку XHTML, а так же другим многочисленным нормам и соглашениям, которые известны опытным web-мастерам. Однако ими пренебрегаю новички и те, которым просто хочется создать сайт, не вникая в технические аспекты. не думая о том, что среди посетителей могут быть те, кто использует Macintosh или Linux, а также инвалиды, к которых могут быть проблемы со зрением или трудности с использованием мыши.
Конечно же Plume CMS включает функции, ставшие обычными для современных CMS: многопользовательский доступ, возможность правки и окончательной публикации статьи более опытным редактором, частичный или полный перевод сайта на выбранный язык, поддержка Unicode UTF-8, короткие и читабельные URL, плагины, системы управления файлами и изображениями, поддержка синтаксиса Wiki при редактировании. Список возможностей достаточно объемен, но здесь нет ничего лишнего.
Более опытные и пытливые web-мастера могут разобраться с системой шаблонов на PHP, чтобы изменить ее частично или полностью. Также их заинтересует набор плагинов, которые позволят добавить в систему новые функции.
Новички оценят простоту инсталляции (система позаботится обо всем, включая создание базы данных, вам не придется править ин одного конфигурационного файла), многочисленные справочные сообщение, редактирование новостей и статей с использованием мощного, простого и понятного синтаксиса Wiki.

Xoops
Адрес в сети: http://www.e-xoops.com

Xoops – производная система от PHPNuke, написана на php, использованием ООП. Система развивалась в рамках очень активного сообщества и с течением времени обросла следующими функциональными особенностями:
  • быстрая инсталляция с подсказками;
  • хорошо организованная и несложная в освоении система администрирования;
  • полноценная система управления правами;
  • настраиваемая система управления кэшем;
  • возможность создать сайт на нескольких языках;
  • настройка графического оформления с помощью SMARTY (освоение этой системы шаблонов требует некоторого знания HTML и PHP);
  • простейшая система управления модулями (инсталляция, деинсталляция, связывание);
  • продвинутая система управления блоками
Движок поставляется со всеми необходимыми функциями, среди которых можно отметить новостную ленту и форум. Система работает намного шустрее, чем PHPNuke, но медленнее, чем SPIP. Но этот недостаток сглаживается богатыми и объемными функциональными возможностями. Система очень хорошо приспособлена для решений Intranet pro или для создания портала интернет-сообщества.

RunCMS
Адрес в сети: http://www.ruscms.ru/

RunCMS базируется на ядре Xoops, вписываясь таким образом в линейку CMS, производных от PHPNuke. На данный момент система отличается: удобством использования, скоростью, модульностью, эргономичностью, универсальностью.
Программа включает: систему управления статьями и ссылками, форум, файловый архив, опросы, FAQ, RSS, систему управления пользователями, темы. Доступно также около 120 модулей: календарь, приватные сообщения, фотоальбомы, чат, глоссарий, ftp.
Система администрирования удобна, функциональна и эффективна. Обращает на себя внимание левая колонка, где регистрируются модули, а так же структура подменю. Вы можете без проблем определить конфигурацию своего сайта: настроить права пользователей и указать мета-теги.
Автоматическая инсталляция модулей упрощена до предела.
В систему легко вникнуть. Вы сможете сконфигурировать ее, даже если вы не являетесь программистом или дизайенром.


Zope
Адрес в сети: http://www.zope.org

В отличии всех ранее перечисленных cms, Zope написан на Python. В него включено множество компонентов, некоторые из которых могут быть использованы независимо.Одной из самых притягательных сторон Zope является то, что пользователи, которые не являются программистами могут без проблем инсталлировать и настроить компоненты-приложения, которые интегрируются с платформой. На сайте Zope.org можно найти ссылки на множество (более 300) компонентов. Web-интерфейс Zope позволяет не только управлять содержимым и решать задачи администрирования, разработчик также сможет найти там инструменты для решения своих задач. Выгода такого подхода очевидна: пользователи будут управлять сайтом при помощи банальных инструментов, которые имеют знакомый пользовательский интерфейс.

Рубрики:  бесплатные CMS

Метки:  

Основные приемы оптимизации html кода

Среда, 24 Октября 2007 г. 21:11 + в цитатник
В данной статье будут рассмотрены основные приемы оптимизации html кода для достижения высоких позиций при поисковых запросах в поисковых системах и следовательно поднять его популярность. Большинство пользователей просматривают примерно 20 сайтов по своему запросу, а, следовательно, чтобы пользователь зашел на ваш сайт нужно добиться того, чтобы по результатам поискового запроса ваш сайт оказался среди 20 первых сайтов в списке, но лучше в 10.

Оптимизация заголовков (<title> </title> )

В заголовке нужно использовать все слова, которые предположительно будут вводиться в поисковом запросе, причем содержание страницы должно соответствовать словам введенным в заголовке. В нашем случае в заголовке можно написать: "Раскрутка сайтов, статьи по раскрутке и оптимизации сайтов". Самое важное слово нужно расположить слева, поскольку все поисковые машины читают информацию с сайта слева на право. Желательно, чтобы это самое важное слово повторилось более одного раза, но не в коем случае не повторяйте все слова много раз. Помните, что чем больше слова "раскрутка" (например, пользователь в поисковой системе вводит слово "раскрутка") будет расположено на странице, то у вашего сайта будет больший приоритет попадания на высокие позиции по запросу пользователя. Но это слово должно встречаться либо в ключевых словах, либо в самом тексте и также не забудьте, что лучше не создавать "невидимого текста с этим словом", поскольку пользователь его не увидит, а вот поисковый робот это заметит и даже может включить сайт в серый спам список с альтернативой попадания и в черный список.

Мета- тэги

 На сегодняшнее время многие поисковые системы просто игнорируют информацию, прописанную в мета-тэгах, но все-таки прописать ключевые слова в мета-тэгах нужно обязательно. Рассмотрим основные мета-тэги и опишем, что в каком тэге прописывать.

<meta name="keywords" content="раскрутка, раскрутка, сайта, оптимизация, оптимизация, сайта, статьи по раскрутке, оптимизации, сайтов", поисковые системы, оптимизация страниц, поисковик, мета, meta, vtnf, hfcrhenrf, jgnbvbpfwbz" /> в этом мета-тэге нужно прописать все ключевые слова, которые характеризуют данную страницу;/>

<meta name="description" content="статьи, по раскрутке и оптимизации сайтов, раскрутка и оптимизация сайтов" /> в этом тэге нужно написать небольшое описание страницы;

<meta name="robots" content="index,all" /> этот мета-тэг предназначен для разрешения поисковому роботу индексировать данную страницу. Значение index означает, что мы разрешаем индексировать главную страницу, а значение all, что мы разрешаем индексировать все остальные страницы. Также возможны следующие значения этого мета-тэга all,none, index,noindex, follow,nofollow;

<meta name="resourse-type"content="document" /> этот мета-тэг нужно прописать обязательно, поскольку поисковый робот если видит, что сайт является документом, то он обязательно начинает его индексацию, что безусловно для нас очень полезно;

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

Полезные тэги

Многие забывают использовать очень полезные тэги, которые могут повысить приоритет вашего сайта по сравнению с другими на попадание на первые страницы при одном и том же поисковом запросе.
тэг title предназначен для описания гипперссылки, например, у гипперссылки с текстом раскрутка будет title "раскрутка";
alt-тэг предназначен для того же, что и тэг title, но для изображения, то есть при наведении на логотип сайта по раскрутке сайта появится следующий текст: "раскрутка, оптимизация, поисковые системы, hfcrhenrf...". Одним словом в этом тэге можно прописать все ключевые слова из мета-тэгов.
 И в заключении можно сказать, что содержание сайта является очень важным фактором для успешной раскрутки сайта, также на сайте должна быть понятная навигация, сайт нужно периодически обновлять, желательно сделать страницы сайта быстро загружаемые и желательно организовать поиск по сайту.
 Теперь можно привести статистику конкретно данной статьи. Как говорилось в начале пользователь в нашем примере вводит в поисковом запросе слово "раскрутка" и также говорилось о том, что чем больше слово из запроса встречается на странице, тем больший приоритет (релевантность) отдается сайту в результате поискового запроса. Получилось, что в самой статье слово "раскрутка" появлялась 14 раз, но в этой цифре не учтены ключевые слова из мета-тэгов самой страницы и полезных тэгов, а вместе с самим html кодом это слово встречалось более 20 раз. Это означает, что у сайта более 20% того, что он попадет на первые позиции в по поисковому запросу. В итоге можно сказать, что при использовании всего того, о чем было написано выше можно достаточно неплохо раскрутить сайт и получить непосредственно "целевых" посетителей, которые в будущем могут вернуться на ваш сайт если он им понравится. Удачной вам раскрутки!

Автор: Дмитрий Столяров
Рубрики:  полезные советы

Обзор бесплатных CMS

Среда, 24 Октября 2007 г. 02:01 + в цитатник
Для тех, кто решили сделать свой сайт, но не знает с чего начать, представляю небольшой обзор наиболее популярных на данный момент систем управления сайтом, они же  движок сайта или CMS ( Content Management System ).

CMS Е107
Адрес в сети: http://e107.ru/

Е107 является одной из наиболее лучших систем управления сайтом по критериям ресурсоемкость /возможность /стабильность /безопасность /простота. Стоит отметить множество полезных дополнений и модулей, которые доступны при стандартной установке: форум, система голосований, загрузка  файлов, архивы статей, новости. Проект является не коммерческим, и распостраняется совершенно бесплатно. Из всех подобных систем е107 вполне может претендовать на звание самой мощной и удобной; легко устанавливать, легко пользоваться. Так же благодаря своей известности за границей имеет огромное количество дополнительных модулей. Очень радует российская поддержка, полная документация, большое количество шаблонов.

Joomla
Адрес в сети: http://joomlaportal.ru

Это одна из самым популярных систем на данный момент. Joomla продолжает лучшие традиции Mambo, являясь дружественной, мощной и эргономичной системой, адаптированной для сайтов-визитных карточек, коммерческих сайтов, сайтов гос. учреждений и интернет-сообществ. Система отличается развитой модульностью и  простотой в использовании административной панелью.
Меню системы администрирования сосредоточено на элементах управления контентом, а не на функциональных особенностях CMS. Новичек легко сможет создать меню и подменю, подключить компоненты и модули, добавить новости на сайт.
По словам разработчиков, многие пользователи высоко оценивают возможность редактировать контент, не вникая в тонкости необходимых технологий. «Самой притягательной стороной для тех, кто использует Joomla, является то, что она устраняет барьеры для тех людей, которые раньше ни за что не посчитали себя способными быстро и легко изменять содержимое web-страницы.
Контент пользовательской части базируется на шаблоне (теме), который представляет собой 1 файл. К нему прилагается стандартная таблица стилей и набор изображений. Размещение областей сайта также определено в шаблоне. Это позволяет определить (и если надо переопределить под конкретного пользователя) внешний вид сайта, указывая места размещения для статей и блоков. Например, можно определить зону для новостей, рекламного баннера,  статей, формы авторизации, поисковой формы.
Команда разработчиков нацелена на создание простой и функциональной, а главное полностью бесплатной CMS. К тому же существует возможность расширить функциональность Joomla за счет компонентов, модулей и плагинов сторонних разработчиков.

Typo3
Адрес в сети: http://www.typo3.ru/

Если вы ищите что-нибудь простое и быстрое, не выбирайте typo3, скорее всего вы будете разочарованы.  Зато если перед вами стоит более сложная задача, тогда время, потраченное на изучение системы, окупится сторицей. В итоге у вас будет приложение на все случаи жизни. Трудности могут начаться уже на этапе инсталляции системы. Их причиной может стать функциональная сложность системы, а так же отсутствие приложений, необходимых для работы CMS.  Счастливчики, для которых процесс инсталляции закончится успешно, с радостью обнаружат, что система позволяет управлять несколькими сайтами на одной инсталляции, а богатый ассортимент модулей призван удовлетворить все возможные потребности. Система отличается функциональной гибкостью, которая позволяет адаптировать ее для широкого круга задач. К тому же к ней прилагается мастер создания новых расширений, на случай, если существующие (их около сотни) вам не подойдут. Думаю, что после того как вы попробуете систему, у вас возрастет требовательность к CMS вообще.

Drupal
Адрес в сети:  http://drupal.ru

Drupal обладает огромным числом модулей для управления материалами сайта и разграничения прав доступа в сообществе пользователей.
Основными отличительными чертами Drupal являются интерфейс управления пользователями (включает блок контакты, биографические аднные, список публикаций), интерфейс управления содержимым (включает систему отслеживания изменений, wysiwyg-редактор), встроенный форум и фотогалерея, очень гибкая система шаблонов на php, возможность посмотреть содержимое на сайте или получить его по почте, система кэширования, поддержка mod-rewrite, неплохая система администрирования, которая для выполнения некоторых функций может потребовать установку дополнительных модулей. Содержимое сайта может быть отсортировано по дате опубликования, по алфавиту, по размеру. Система управления содержимым, будучи очень мощной, одновременно усложняет процесс управления иерархической структурой сайта.
К тому же к системе прилагается большое количество разнообразных модулей: опросы, формы, новостные ленты, почтовый клиент, чат, online-анкета. Функциональные возможности системы могут быть также расширены за счет модулей, которые позволяют управлять группами, создать индивидуальный блог, ограничить доступ к ресурсам сайта. Пользователь может также установить такие необычные модули как каталог рецептов, электронную библиотеку, систему правления ссылками.
Drupal кажется более логичной, быстрой и простой системой, чем Joomla, однако ей не хватает эргономичного интерфейса управления страницами, дизайнерского оформления, автоматического инсталлятора, более логичной системы управления иерархическими меню.
Рубрики:  бесплатные CMS

Метки:  

Дневник web_developer

Среда, 24 Октября 2007 г. 00:24 + в цитатник
Всё о создании, развитии и поддержке web-сайтов. Здесь представленны наиболее интересные материалы о html, css, usability, позиционировании в поисковых системах, программировании и системном администрировании и коммерции в Сети. Многие материалы - перепечатка из блогов и новостных ресурсов, на авторство которых мы не претендуем.


Поиск сообщений в web_developer
Страницы: [1] Календарь