Pull to refresh
0
0
postdig @postdig

User

Send message

Дёшево и сердито блокируем 85% спама: greysmtpd

Reading time3 min
Views3K
Пока я не стал фрилансером, я не знал, что такое спам. У меня хватало ума не светить свой email где попало, а для регистраций на сайтах использовать временные email. И я привык к тому, что вся почта у меня бегает очень быстро, письма никогда не теряются, и никто не жалуется что мой сервер отказался принимать его письмо. Став фрилансером, я оказался вынужден опубликовать свой email, причём на многих сайтах — ведь новые клиенты должны иметь возможность легко со мной связаться. И спам полился… сначала небольшим ручейком, но в последнее время он уже напоминает скорее полноводную реку, чем ручеёк.

Использование традиционных спам-фильтров (RBL, GMail, SpamAssassin, etc.) меня не устроило: все они время от времени ошибаются, и принимают за спам нормальные письма. И не важно, они их давят, возвращают отправителю, или складируют в отдельную папку чтобы я их периодически просматривал — в любом случае есть ненулевая вероятность потерять важное письмо.
Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments56

JavaScript Cross Site (XSS) POST

Reading time4 min
Views13K
Недавно, в Dojo появилась возможность производить cross site POST запросы, т.е. отправка POST запросов на другие сайты, с другими доменными именами. Это событие осталось незамеченным в нашем сообществе JavaScript разработчиков. По крайней мере, никто и слова про это не сказал. А зря…

В один прекрасный момент
Читать дальше →
Total votes 62: ↑57 and ↓5+52
Comments73

Супер-юзабильные формы

Reading time2 min
Views54K
super_form

Как-то на хабре разгорелся спор, как заставить пользователя вводить дату в правильном формате, было множество интересных решений, но заставлять пользователя совершенно не надо — пусть за пользователя основную работу делают машины :-).

На помощь приходит замечательный скрипт «Masked Input Plugin», который позволяет назначить для каждой формы маску, по которой данные будут заполнятся.

Возможно Вы не совсем поняли, но лучше один раз увидеть, чем сто раз услышать.
Читать дальше
Total votes 208: ↑164 and ↓44+120
Comments91

"Спросика" — учебное пособие по Symfony Framework

Reading time7 min
Views11K

Вызов (от переводчика)


Symfony — это один из тех фреймворков на PHP5, который привлекает своей достаточной документацией, множеством плагинов, обновлениями, анонсами новых версий и многим другим.
К сожалению документации на русском языке пока мало. Многие зарезервированные доменты вроде http://symfony-project.ru/ лишь имею одну фразу — «Скоро будет». И причём уже давно.
На самом проекте  http://symfony-project.org/ в разделе документации можно увидеть наш триколор только в разделе «Cookbook».
Итак, я бросаю вызов и намереваюсь заняться переводом. API переводить думаю смысла нет, книга — слишком объёма пока что для меня (но это временно явление, возьмусь может и за неё). А переводить мы начнём Askeet Tutorial. Если первый перевод примут — буду перводить дальше. Каждый день не обещаю, но постараюсь в будние дни по статье выкладывать

Итак... поехали!
Total votes 43: ↑39 and ↓4+35
Comments36

Неблокирующая загрузка JavaScript

Reading time1 min
Views1.7K
Примечание: ниже перевод статьи «Non-blocking JavaScript Downloads», в которой автор рассказывает о проблемах, связанных с подключением JavaScript-файлов, и возможной параллелизации их загрузок. Мои комментарии далее курсивом.

Stoyan StefanovОб авторе: Stoyan Stefanov является веб-разработчиком Yahoo! в группе Exceptional Performance и курирует разработку YSlow — инструмента по измерению производительности. Он также внес значительный вклад в разработку продуктов с открытым кодом, выступал на конференциях и автор технических текстов. Его последняя книга Object-Oriented JavaScript.

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

читать дальше на webo.in →
Total votes 1: ↑1 and ↓0+1
Comments40

Альтернатива cookies посредством Java Script

Reading time5 min
Views14K
Поиск по хабру похожей статьи не дал, потому рискну поделится с теми кто еще не в курсе
Многие из вас сталкивались с проблемой хранения данных на клиенте. Первым делом в голову приходит cookies но ограничение хранения данных в размере не более 4kb не всех радует, сегодня если позволите я вам расскажу как посредством Java Script хранить около 100kb на клиенте.
итак приступим
Total votes 1: ↑1 and ↓0+1
Comments43

Усовершенствования во вредоносных скриптах

Reading time1 min
Views929
Авторы вредоносных скриптов становятся всё изощрённее. По сообщениям от антивирусных компаний, они изучили и начинают активно применять новые трюки. Если раньше скрипты можно было легко обезвредить, просто поменяв переменную eval() на alert(), то теперь в скриптах используется переменная callee(), чтобы блокировать такие изменения. Хуже того, вирусописатели теперь используют информацию из document.referrer, document.location и location.href для декодирования скриптов, оптимизированных для конкретного сайта. Другими словами, эти скрипты будут запускаться только при определённых условиях, что делает их обнаружение довольно трудным.

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

Специалисты SANS рекомендуют установить маленький 8-строковый патч для программы SpiderMonkey, который показывает все аргументы eval() перед их запуском на исполнение. На сегодняшний день это, возможно, самый лучший способ для поиска вредоносных скриптов.

$/tmp/js/src$ diff jsobj.orig jsobj.c
1256a1257
> char *c;
1366a1368,1372
>
> c = js_GetStringBytes(cx->runtime, str);
> if (file && c) {
> printf («File %s Line %i calls eval with the following parameter:\n%s\n\n»,file,line,c);
> }
Total votes 11: ↑8 and ↓3+5
Comments3

Бесплатный сервис для выслеживания потерянных ноутбуков

Reading time2 min
Views28K
В наши дни потерять ноутбук — значит лишиться значительной части собственной цифровой жизни. Потеря важных фотографий, записок, паролей, веб-ссылок, файлов зачастую гораздо важнее, чем несколько сотен долларов на новое железо. Вот почему вчерашний запуск проекта Adeona так важен для всех нас.

Adeona — это открытый и бесплатный проект. Названный по имени римской богини Адеоны, которая помогала потерянным детям найти путь обратно к маме, этот сервис отслеживает IP-адрес потерянного ноутбука. Сервис работает просто: сначала нужно скачать специальную программу-шпион (с открытыми исходниками), после установки эта программа начинает посылать зашифрованные послания на распределённый хостинг OpenDHT. Если ноутбук когда-нибудь потеряется, то пользователь скачивает другую программу, вводит свой логин и пароль, и получает всю информацию в расшифрованном виде, в том числе IP-адреса всех подключений ноутбука к интернету, а также служебную информацию обо всех окружающих маршрутизаторах (точках Wi-Fi). Этих данных может быть вполне достаточно, чтобы вычислить злоумышленника и быстро вернуть пропажу.

Версия «Адеоны» под Mac способна даже задействовать встроенную в ноутбук веб-камеру и сделать снимок злоумышленика.

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

В альтернативных коммерческих сервисах, во-первых, приватные данные не так хорошо защищены, а, во-вторых, эти сервисы просто не бесплатные.

Поскольку код программы открыт, то любые разрабогтчики могут усовершенствовать программу и создать версию, например, для выслеживания потерянных «айфонов».
Total votes 36: ↑35 and ↓1+34
Comments79

Букмарклет, подгружающий внешний скрипт

Reading time1 min
Views1.2K
В текущем проекте была задача написания полуавтоматического граббера страниц. Для этого необходимо было делать инъекцию скрипта в текущую страницу. Решил таким букмарклетом:

<a href=«javascript:(function(){var d=document,s;
s=d.createElement('script');
if(typeof s!='object')s=d.standardCreateElement('script');
s.src='http://example.com/js/bookmarklet.js';
s.type='text/javascript';
d.body.appendChild(s);})();»
>Do it!</a>


В более читаемом виде:

(function(){
 var d = document, s;
 s = d.createElement('script');
 if(typeof s != 'object'){
  s = d.standardCreateElement('script');
 }
 s.src = 'http://example.com/js/bookmarklet.js';
 s.type = 'text/javascript';
 d.body.appendChild(s);
})();


Оттестировано в IE6, IE7, FF2, FF3, Opera 9.2, Opera 9.5, Safari.
Total votes 28: ↑18 and ↓10+8
Comments25

эффективное использование vim: «from the very begining»

Reading time7 min
Views26K
«Для меня vi это Дзен.
Использование vi — это практика дзена.
Каждая команда является коаном.
Полный смысла для пользователя,
Бессмысленный для непосвященного.
Вы познаете истину каждый раз когда вы его используете.»
--reddy@lion.austin.

на сколько хорошо ты знаешь язык vim?
посмотри на клавиатуру,
можешь ли ты сказать что выполняет каждая буква?
как много ты знаешь?
как много используешь?


эффективное использование vim
Total votes 92: ↑83 and ↓9+74
Comments114

Лучшие расширения для Firebug

Reading time1 min
Views1.1K
Adam DuVander из команды сайта WebMonkey составил список пяти лучших надстроек над Firebug. Вне конкуренции, оказался YSlow, но остальные 4 тоже очень полезны:

* Firecookie для простоты работы с cookies
* FirePHP для интеграции серверного PHP дебагинга с интерфейсом Firebug
* Pixel Perfect для наложения макета на HTML шаблон для контроля соответствия вёрстки
* Rainbow для подсветки Javascript синтаксиса

Пользуйтесь.
Total votes 61: ↑58 and ↓3+55
Comments25

2+3

Reading time1 min
Views708
Маленькая заметка о том как запускать несколько разных версий Лиса. Простым пользователям нафиг ненадо, а вот вебразработчикам и кодерам пригодится.
Предположим у вас уже есть Лис версии 2.0.*, и вы стремясь к рекорду скачали 3.0. Не спешите ставить, если все пустить на самотек — установку по умолчанию то затрется ваш предведущий профайл. Поэтому запускаем уже установленую версию фокса с ключем -ProfileManager, примерно так firefox -ProfileManager.
Создаем дополнительный профайл, после чего начинаем установку третьей версии. Ее необходимо ставить отдельно не в туже директорию, я выбрал директорию рядом. Получилось примерно так, особой гениальностью я не блистаю потому и приставка к версии.

Версия Куда поставил Профиль
2.0.14 C:/Program Files/Firefox/2.0.14/ 2.0.14
3.0 C:/Program Files/Firefox/3.0/ 3.0


А теперь давайте создадим башскрипт firefox.bat который собственно и будет запускать фокс
@echo off
set MOZ_NO_REMOTE=1
start "" "C:\Program Files\Firefox\%1\firefox.exe" -p %1
set MOZ_NO_REMOTE=0


Это мой батник, под мои условия установки (всего 1 файл). Если у вас пути отличаются или профайлы по-другом называются, измените его под свои условия, или создайте для каждой версии свою версию. Я же создал два ярлыка для башскрипта, и пеердаю в качестве аргумента версию Лисицы.

Ну а теперь задача за малым, как различать версии по ярлыкам? Просто укажите путь к новым иконкам которые вы можете взять со следующих источников



Спасибо за внимание.
Total votes 49: ↑37 and ↓12+25
Comments48

Потомок «нецензурного» трояна или как воруют пароли на FTP.

Reading time5 min
Views2.9K
Вчера я разбирал «нецензурный» троян (http://vilgeforce.habrahabr.ru/blog/44130.html), а сегодня разделываю его потомка — ftp34.dll. Эта тваринка, кстати, куда как интереснее подавляющего большинства троянов. Хотя бы тем, что ворует информацию не с диска, а прямо из сетевого траффика. Как? Смотрите под кат.

Читать дальше →
Total votes 75: ↑72 and ↓3+69
Comments49

Нецензурный троян.

Reading time6 min
Views4.1K
В общем, с этим трояном все было понятно с самого начала: что-то он из сети качает. Но в силу некоторых причин (одна из них — детект каспером как P2P-Worm.Win32.Socks.s) я решил его «разобрать». Под катом — технические подробности вскрытия трояна. Внимание, наличествуют не совсем цензурные слова и много технических подробностей!

Читать дальше →
Total votes 114: ↑111 and ↓3+108
Comments48

«Критическая цепь» Голдрата. Конспект книги

Reading time1 min
Views8.8K
Для того, чтобы познакомиться с общей идеей CCPM (Critical Chain Project Management), нужно обязательно прочесть книгу автора — Элияху Голдрата.
Она написана как художественное произведение, а не как учебник, и по-настоящему заставляет проникнуться идеей. Я попробовал сделать конспект книги в виде mindmap (щелкните на рисунок, чтобы увидеть полноразмерную карту).

Также вы можете ознакомиться с конспектом в формате mmap
Попробуйте его рассмотреть — поможет ли он вам понять основные мысли книги?

Оригинал данной записи опубликован в блоге «Управление проектами в картинках»
Total votes 37: ↑33 and ↓4+29
Comments29

Обслуживание клиентов: самые грубые ошибки

Reading time4 min
Views1.3K
В продолжение темы обслуживания клиентов.
Претензии к качеству клиентского обслуживания слышны по всему миру, меньше их не становится. В то же время, в каждой стране есть компании, «заведенные» сотрудники которых устанавливают самые высокие стандарты обслуживания клиентов. В таких фирмах царит энтузиазм, объединяющий всех и все. Конечно, у них есть, чему научиться. И в первую очередь надо узнать ошибки, которых в таких компаниях НЕ делают. Ошибки, типичные для всех остальных.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments28

GroovyTel и IPKall — бесплатно американский телефонный номер

Reading time1 min
Views24K
Защел недавно на сайт замечательного сервиса gtalk2voip.com посмотреть какие новые фенечки появились и увидел интересную новость за 29 января о сервисе www.groovytel.com
Вкратце — персональные американский телефонный номер с возможностью переадресации на Google Talk, MSN Messenger, Yahoo Messenger, Free World Dialup, Gizmo5. При регистрации позволяют выбрать номер из 3 предложенных, мне выдали вида +15672587XXX. Действительно работает проверял только на gtalk. При осуществлении звонка — в gtalk поступает вызов от абонента с номером телефона (если определяется).

Схожие сервисы: gobaza, jetnumbers.

Update:

Побродив по просторам интернета обнаружил еще один сайт www.ipkall.com имеющий перед groovytel большие преимущества (для меня лично) в возможности использования в хардварных решениях (поддерживает SIP и IAX). Настроил переадресацию на аккаунт sipnet.ru который заведен на AudioCodes MP-202. Теперь для приёма звонков компьютер не требуется и можно пользоваться обычным тел аппаратом =)

Также бесплатный тел. номер в Германии (Мюнхен) вида +49 (89) 721010 XXXXX
дает sip оператор www.bluesip.net переадресацию на другой sip аккаунт не поддерживает.

Большой список DID провайдеров www.voip-info.org/wiki/view/DID+Service+Providers
Total votes 35: ↑32 and ↓3+29
Comments37

Борьба с DDOS и DOS на уровне nginx

Reading time1 min
Views8.2K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments42

Оптимизация работы с MySQL

Reading time3 min
Views78K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments107

Уязвимость в Bittorrent протоколе

Reading time2 min
Views1.7K
Перед прочтением статьи порекомендовал бы ознакомится с основными терминами данной технологии http://ru.wikipedia.org/wiki/BitTorrent
Также желательны знания основ языка Perl

Читать дальше →
Total votes 12: ↑6 and ↓60
Comments14

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity