Полезный сайдбар Файрфокса

01.07.2008 

Расскажу в этом посте про одну удобную штуку, которую позволяет сделать Файрфокс. А именно, в сайдбаре браузера можно отображать различные гугловские сервисы, такие как Google Gmail, Google Docs и другие. Выглядеть это будет примерно вот так:

Теперь расскажу как это делается. Берете создаете новую закладку с адресом сервиса (список доступных адресов немножко ниже). Для этого в поле адреса вводите интересующий вас URL. К примеру, для почты: http://m.gmail.com

Жмем энтер. т.е. переходим по указанному адресу. Теперь добавляем в закладки эту страницу. Думаю, как добавлять сайты в закладки, рассказывать не надо, но на всякий случай несколько вариантов того, как это можно сделать:
1) Ctrl + D
2) Нажать на звездочку в конце адресной строки:

3) В меню Закладки->Добавить страницу в закладки

Есть. Добавили.

Теперь открываем список закладок и нажимаем правой кнопки мышки на нашей, только что добавленной, закладке. В появившейся менюшке выбираем “Свойства”. Появится окошко с заголовком “Свойства для Gmail”. Внизу ставим галочку возле “Загружать закладку в боковой панели” и сохраняем изменения. Все! Теперь открываем нашу закладку и она откроется в сайдбаре браузера, как и было показано на картинке.

Теперь, как и обещал, привожу список адресов сервисов Гугла, которые легко можно загнать в боковую панельку:

Google Gmail – http://m.gmail.com – С Gmail в сайдбаре, вы можете создавать новые письма, просматривать контакты, или получать уведомления о новых сообщениях.

Google Notebook – http://www.google.com/notebook/m – Мобильная версия Блокнота от Гугла позволяет просматривать существующие заметки или добавлять новые через сайдбар.

Google Talk – http://talkgadget.google.com/talkgadget/popout – Можете и его вставить на всякий случай.

Google Homepage – http://www.google.com/ig/i – Оптимизированная под iPhone версия Google IG отлично смотрится в боковой панели.

Google News – http://www.google.com/m/news – Новости от Гугла из всех категорий. Если хотите, чтобы отображались новости только одной категории, к примеру, “Наука и техника”, то вот адрес: http://www.google.com/m/news?topic=t

Google Docs – http://docs.google.com/m – С мобильной версией Google Docs, в сайдбаре вы можете просматривать свои документы, но создавать не получится.

Google Calendar – http://www.google.com/calendar/m – Не пропустите ничего запланированного – календарь в сайдбаре поможет! Вы также сможете создавать новые ивенты (вешать на дату новое событие).

Google Reader – http://www.google.com/reader/i – Также разработан под iPhone. Вы будете в курсе обновлений всех RSS-фидов, на которые подписаны.

Google Photos – http://picasaweb.google.com/m/ – Позволяет Вам просматривать фото-альбомы Picasa Web Album в сайдбаре Firefox. также можете оставлять комменты к понравившимся фоткам.

Вот так. Надеюсь, этот пост будет полезен не только мне.
_____
- Работающие за компьютером, дайте отдохнуть своим рукам: для вас кистевой тренажер-powerball — замена эспандеру!
- Что будем делать завтра, когда интернет отменят?
- Прежде чем работать на себя, научись работать на других

Блоггеры «В Контакте»!

27.06.2008 

Поискал я немного блоггеров в популярной социалке “В Контакте” и составил немаленький список, которым хочу поделиться с вами. Если хотите в него попасть, то для этого есть несколько условий: регистрация “В Контакте” и популярный или понравившийся мне блог. Оставляйте заявки в комментах.

Фото Блоггер (ник) Блог
Абанова Ольга (Lelya) Абанова Ольга (Lelya) http://www.getincss.ru
Андреевич Станислав Андреевич Станислав http://blog-invest.ru/
Анохин Дмитрий Анохин Дмитрий http://delpher.od.ua
Юлия (Клубника) Юлия (Клубника) http://webclubnicka.ru,
http://healthcollection.ru
Болтиков Денис Болтиков Денис http://denis.boltikov.ru/
Донченко Дмитрий Донченко Дмитрий http://blogproblog.com
Дроздов Юрий Дроздов Юрий http://blog.sribna.com
Жилинский Владимир Жилинский Владимир http://zhilinsky.ru/
Жуковский Сергей Жуковский Сергей http://z.codeby.net
Иванова Ольга Иванова Ольга http://www.epochta.ru/blog/
Колесниченко Сергей (Yukko) Колесниченко Сергей (Yukko) http://estrabota.com.ua/blog/
Крайнов Макс Крайнов Макс http://www.kraynov.com
Кузьмин Евгений (Milax) Кузьмин Евгений (Milax) http://publicweb.ru
Лукомский Дмитрий Лукомский Дмитрий http://fdiver.blogspot.com/
Майнас Артем (Тёмма) Майнас Артем (Тёмма) http://tyomma.ru/
Станислав Малкин Малкин Станислав http://malkin.com.ua/
Матияш Виталий Матияш Виталий http://vitaluha.blogspot.com/
Московенко Влад (Успешный вебмастер) Московенко Влад (Успешный вебмастер) http://seo-lux.ru/
Настенко Роман Настенко Роман http://www.perfectomania.com/blog/
Никулин Александр Никулин Александр http://www.nikulin.biz/
Рабченок Илья (sheller) Рабченок Илья (sheller) http://smopro.ru/, http://sheller888.ru/
Радченко Виктор (ZEXEL) Радченко Виктор (ZEXEL) http://forzexel.com/
Салахутдинов Марат (195531) Салахутдинов Марат (195531) http://195531.com/
Судилковский Денис (sudya) Судилковский Денис (sudya) http://bizdesign.com.ua/
Тестов Александр Тестов Александр http://www.blogbest.ru
Тодосийчук Александр (Tod) Тодосийчук Александр (Tod) http://tods-blog.com.ua/
Толстых Андрей Толстых Андрей http://smopro.ru/
Уваров Стас Уваров Стас http://uvarovstas.com/
Четвергов Евгений (Kopernik) Четвергов Евгений (Kopernik) http://www.kopernik.name
Ясносолнышков Нодар Ясносолнышков Нодар http://nodar.name/

_____
Это интересно:
- Поднимаем Google PR на новом ноуте
- Веб мастера объединяются и собираются выступить против Яндекса

Герои? Возможно…

27.06.2008 

Бездарно, безвольно, неинтересно и медленно. Так играла Российская сборная в полуфинале континентального первенства. После матча с испанцами чувствуешь себя обманутым. Неужели мы это ожидали увидеть в отчетном поединке? Зачем надо было выносить главных претендентов на победу – сборную Голландии? Чтобы еще 90 минут потоптать газон в Вене? Ах, я и забыл, они ведь герои! Они так далеко зашли, прыгнули выше своей головы! Они подарили нам праздник! Скажите, а разве после 1/8 чемпионат закончился и это повод, извините, расслаблять булки?

Конечно, команду по приезде домой ждет прием у Медведева. Конечно, футболистами будут интересоваться известные футбольные клубы. Конечно, … Но неужели нельзя об этом думать потом – после последнего матча ЕВРО?!

Позорище! Такое ощущение, что россияне готовились к матчу где-то в кабаке. Все футболисты пребывали в каком-то сонном и тормознутом состоянии. Жиркова проглотил и не заметил этого Рамос. Жиркова, которого все носили на руках и чуть ли не боготворили. Аршавин. А он был на поле? А где была полузащита вообще? А сколько вы вспомните выигранных подборов? Правда, Рома Павлюченко молодец – без упущенного вернякового момента не ушел с поля.

Не было самого главного – огонька в глазах, желания пройти дальше, доказать что они способны не просто громко выстрелить пару раз в направлении мишени, а мощно бабахнуть и поразить главную цель. Россия вышла на поле с чувством выполненого долга и провела в ПОЛУФИНАЛЕ свой худший матч чемпионата.

Вы знаете, ничего не хочется писать больше об этом матче. 3:0 и этим все сказано. Вы не подумайте что я тут специально гажу и пытаюсь испортить общее впечатление от игры России на этом ЕВРО. Я сейчас болел за сборную соседней страны не меньше чем за родную в 2006-м на ЧМ. Просто я пытаюсь донести главное. Герой не тот, кто выиграл бой, а тот кто выиграл войну. Мне было безумно жалко, что в первом матче чемпионата испанцы вынесли россиян, которые играли достаточно симпатично, с таким неприличным счетом – 4:1. И мне нисколько не жалко за счет, который только что запечатлело табло стадиона в Вене – все справедливо и победил сильнейший, причем настолько, что местами игра напоминала драку крепкого дяди, спортивного телосложения с хулиганом-пацаном. Без вопросов.

Надеюсь, этот горький опыт научит славян идти до конца, а не останавливаться на полпути разинув рот в восторге от пройденного.

Мда… Жаль… Чувствую, очередной шанс выйти в финал турнира такого калибра выпадет нескоро…Жаль еще раз… Но кто ж им доктор?
_____
Рекомендую:
- ePochta Mailer – лучшая в России программа для электронной рассылки
- Регистрироваться в белых каталогах можно и нужно
- Создание сайтов по доступной цене

SQL injection. Объясняем на пальцах

25.06.2008 

В этом посте немножко коснусь темы безопасности сайтов. Думаю, каждый, кто интересовался темой хака инет-ресурсов, слышал о таком понятии, как SQL-инъекции. Фактически любой сайт, разработчики которого не уделяют должного внимания вопросу безопасного программирования, может быть легко “взломан” этим видом атаки. Чтобы понять, что и к чему в этом посте, необходимо обладать техническим минимумом, в частности, иметь представление о том, что такое PHP и MySQL.

Итак, что же из себя представляют эти “инъекции”, да еще и SQL?

0. Сначала было слово

SQL injection — одна из самых опасных уязвимостей вэб-приложений. Позволяет злоумышленнику выполнять запросы в БД сайта, а в некоторых случаях писать/читать файловую систему с правами сервера баз данных. Уязвимость возникает в большинстве случаев из-за недостаточной фильтрации данных при построении запроса.

1. Немного теории

Любой запрос SQL состоит из нескольких предложений.

SELECT *
FROM base_user

Это пример самого простого запроса, который состоит из двух предложений: предложение SELECT и предложение FROM. Для выбора по условию к запросу добавляется предложение WHERE. В нем обычно и скрываются неприятности.

SELECT *
FROM base_user
WHERE id=1

В MySQL литеральные строки заключаются в двойные или одинарные кавычки. Комментарии пишутся после или /*. Первый вид комментария — комментарий до конца строки, второй — до символов */, по аналогии с С++ или до конца многострочного запроса.

Также стоит упомянуть про объединение результатов запроса с использованием оператора UNION.

SELECT name
FROM A
WHERE id=1
UNION
SELECT name
FROM B
WHERE id=2

Оператор UNION эквивалентен теоретико-множественному оператору объединения множеств. Работает только с запросами на выборку, необходимо одинаковое количество выбираемых полей в предложении SELECT для обоих объединяемых запросов.

Начиная с 5-й версии, MySQL поддерживает написание подзапросов, которые заключаются в круглые скобки ().

2. От слов к примерам

Целые числа

$id = $_GET['id'];
mysql_query("SELECT * FROM base_user WHERE id=" . $id);

Данный пример собирает запрос, подобное можно встретить во множестве сайтов. Как видно, в запрос просто подставляется значение ячейки суперглобального массива $_GET.

Что можно сделать? Мы видим, что переменная id никак не фильтруется, тоесть в GET-запрос мы можем вписать все что угодно.

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

http://test.com/test.php?id=1+UNION+SELECT+1+/*
http://test.com/test.php?id=1+UNION+SELECT+1,2+/*
http://test.com/test.php?id=1+UNION+SELECT+1,2,3+/*

и т.д., при несовпадении количества столбцов сервер будет отвечать ошибкой MySQL. Стоит заметить, в запросах используется /* для комментирования оставшегося запроса, мало ли что там девелопер еще написал…

После определения количества столбцов можно узнать, например, версию сервера. Cоставляем запрос вида:

http://test.com/test.php?id=1+UNION+SELECT+VERSION()+/*

Дальше, покопавшись в документации MySQL, можно набрести на системные таблицы INFORMATION_SCHEMA и на БД mysql. Если сервер настроен плохо, то можно надеятся на права чтения этих таблиц и баз данных. Для выполнения запроса к другой базе данных достаточно поставить ее имя перед именем таблицы и поставить “.”(точка) между именем БД и таблицей. Пример:

mysql.user

Имея доступ к INFORMATION_SCHEMA, злоумышленник легко узнает количество, имена и структуры всех таблиц БД.

Продолжим о вкусностях. Сервер MySQL имеет очень удобное предложение запроса на выборку INTO OUTFILE.

http://test.com/test.php?id=1+UNION+SELECT+1+INTO+OUTFILE+'/tmp/1.txt'

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

Приступим к чтению файловой системы.

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test

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

Литералы

$name = $_GET['name'];
mysql_query("SELECT * FROM base_user WHERE name='" .  $name  . "'");

Этот код безопаснее предыдущего, но только в том случае, если в настройках PHP включены magic_quotes. При включении magic_quotes во всем вводе экранируются кавычки. Если же “волшебные кавычки” отключены, то запрос строится по принципу как и с целочисленными данными, только закрывается открытая кавычка

http://test.com/test.php?name=TEST'+UNION+SELECT+1,2,3+/*

В итоге, вместо

SELECT * FROM base_user WHERE name='TEST'

получаем

SELECT * FROM base_user WHERE name='TEST' UNION SELECT 1,2,3/*

3. Как защититься

Существуют разные способы защиты от инъекции, но в основе каждого лежит правильная и хорошая фильтрация пользовательского ввода. Данные к вэб-приложении поступают из массивов GET, POST и из COOKIE. Любой из массивов может быть преднамеренно изменен. Необходимо контролировать типы входящих значений. Например, попробуйте ВКонтакте в комментарий написать union или какой-то запрос.

Нужно численные значения преобразовывать к численным посредством intval(), floatval() и тп.

$a = intval($_GET['a']);

Это уже не позволит вместо $а вписать какой-то запрос. Следует отметить, что intval() нельзя использовать при проверке число или нет в переменной. Intval() возвращает 1 при непустых значениях параметра любого не числового типа. Для проверки на число лучше использовать is_numeric().

Для строковых значений следует использовать addslashes(), которая экранирует все кавычки символом \. А еще лучше html_entities() для кодирования символов сущностями html(" и т.п.).

4. The End

Как видно, доступ к чтению БД очень опасен. Если кому-то кажется, что md5 хеши (да и вообще любые другие) паролей довольно безопасны, хочу огорчить — существует множество онлайн баз данных хешей, которые за несколько секунд позволяют его вскрыть. Также недавно натолкнулся на программку, которая, по заявлению разработчика, способна на GeForce 9600 вскрыть любой md5 хэш за полдня.

При использовании сырого PHP и глобальных массивов стоит быть очень осторожным. Последствия могут быть плачевными. Следует с ответственностью относится к настройке прав пользователей базы, запрещать чтение INFORMATION_SCHEMA и базу данных mysql. Необходимо фильтровать все входные данные. На живых сайтах стоит отключать error_reporting и дамп ошибок БД в браузер.

Спасибо за написание статьи моему другу Bolshevik’у, а мне спасибо за то, что опубликовал :-)
_____
Рекомендую:
- Продвижение сайтов в Украине
- Пока звезды Реала рубятся на Евро-08, мы проникли в раздевалку великого клуба
- Программное обеспечение для создания собственных безопасных e-mail рассылок
- Как заработать в интернете НЕ продавая информацию

Война с «интеллектуальной» адресной строкой в FireFox 3

24.06.2008 

Как я и писал ранее, одной из особенностей новой версии Файрфокса является новый вид адресной строки. Новшество состоит не столько в каких-то внешних изменениях, а сколько в логике ее работы. Напомню, что при вводе адреса, браузер предлагает в выпадающем списке не только перечень сайтов, УРЛи которых начинаются с введенных символов, но и также анализирует заголовки посещенных страниц и их тексты. Такая вот получилась «интеллектуальная» адресная строка

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

Итак, пошаманить с адресной строкой Файрфокса можно следующими способами:

1. Полностью заблокировать выпадающий список
Откройте страницу настроек браузера about:config. Найдите параметр browser.urlbar.maxRichResults и установите для него значение -1. Все. После перезагрузки Лисы при вводе адреса, браузер вам больше не будет ничего подсказывать. Вы его заткнули :-)

Кстати, это значение равно количеству строк с подсказками, которые выпадают при вводе адреса. Так что этот параметр может пригодится не только для блокирования.

2. Показывать в адресной строке только УРЛи посещенных ранее сайтов
Идем все на ту же страницу настроек Лисы about:config. Ищем параметр browser.urlbar.matchonlytyped и устанавливаем его значение в true. Перезапускаем браузер. Все.

Так же следует здесь упомянуть и плагин, который превращает «интеллектуальную» адресную строку в аля Файрфокс 2 — это oldbar.
_____
Рекомендую:
- Самостоятельное продвижение сайтов. Популярные статьи.
- Новая Зеландия. Самый полный фотоархив в Рунете.
- Разработка сайта в Киеве
- ePochta – электронные рассылки своими руками