Интересуясь информационной безопасностью, я часто имею дело с зараженными сайтами, содержащими фреймы на эксплоиты, шифрованный javascript, запутанные редиректы… Для облегчения работы я использую open source программу Malzilla. К сожалению на русских просторах интернета очень мало информации об этой тулзе, поэтому я хочу перевести официальный мануал к ней. Всего в нем 6 частей, ниже следует перевод первой из них.
maxic @maxic
Пользователь
Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
4 min
50KИдея паттерна Observer заключается в создании зависимости типа один ко многим. При изменении состояния одного объекта(субъекта), зависящие от него объекты(наблюдатели) об этом оповещаются и обновляются. Это нужно для согласования состояния взаимосвязанных объектов без их жесткой связанности.
+38
+3
17 usability tips to make your CMS rock
11 min
1.9K
К вашему вниманию перевод статьи Патрика Кеннеди о том, какой должна быть удобная система управления контентом.
Более чем вероятно, что в вашей CMS будет множество проблем с юзабилити, если вы будете использовать ее в сыром виде. Участвуя в проектах, в которых на меня было возложено внедрение таких систем — систем управления веб-сайтами, интранет-порталами и вики, я заметил, что в их пользовательских интерфейсах есть ряд ключевых областей, требующих исправления с точки зрения удобства использования.
+41
Даже при закрытых дырах на «Вконтакте» можно устроить XSS
1 min
2.9KПригласили меня тут на днях добавить одно приложение «Вконтакте». Интерес взял верх — и я полез смотреть.
+134
Ускоряем запуск браузера FireFox
2 min
36KЕщё давно приметил, что мой любимый инструмент, запускается значительно шустрее после установки, чем после многомесячного, активного использования браузера. Заметил, но как распорядится этим знанием мыслей не было. И вот, только что наткнулся на полезную тему, где описано это узкое место, а также дан ещё один совет по ускорению запуска браузера.
И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «пустые места», ну и главный недостаток, файл базы данных становится сильно фрагментированными. Для решения подобной проблемы существует специальная команда «очистки», точнее операция пересоздаёт файл базы, но уже без пустых мест. Для этого нужно проделать следующее:
И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «пустые места», ну и главный недостаток, файл базы данных становится сильно фрагментированными. Для решения подобной проблемы существует специальная команда «очистки», точнее операция пересоздаёт файл базы, но уже без пустых мест. Для этого нужно проделать следующее:
+193
Очистка поля типа file
1 min
30Kвот такой странный, но ДЕЙСТВУЮЩИЙ способ :)
пример работы — designformasters.info/lab/clear-file-input/index.html (спасибо Jenek )
function clearFileInputField(Id) {
document.getElementById(Id).innerHTML = document.getElementById(Id).innerHTML;
}
* This source code was highlighted with Source Code Highlighter.
пример работы — designformasters.info/lab/clear-file-input/index.html (спасибо Jenek )
+60
Javascript от а и до… II
7 min
11KВот и продолжение первой части, много времени прошло, и вот… здесь я, как и обещал, расскажу поподробней об основных типах. Для начала пара замечаний, первая часть не прошла естественно без критики, так что вступление будет 'работой над ошибками'. В дальнейшем такие работы над ошибками буду вставлять регулярно, и надеюсь хабралюди этому посодействуют…
+6
Краткий обзор движков таблиц MySQL
3 min
79KЦель этой статьи — дать краткий, очень сжатый обзор движков, для того, чтобы статьей можно было пользоваться при выборе движка на этапе проектирования \ создания \ оптимизации таблицы. Предполагается, что читатель знает суть вопроса по крайней мере поверхностно и способен сам отыскать всю дополнительную информацию (вопросы в комментах можно задавать всегда :) )
+93
Полноценные коллекции в PHP
7 min
9.5KНе так давно при разработке своего проекта возникла идея реализовать полноценные коллекции для хранения объектов одинакового типа, по удобству напоминающие List<Type> в C#.
Идея состоит в том, чтобы коллекции, содержащие объекты различных типов сами по себе различались, а не имели, скажем, один унифицированный тип Collection. Другими словами, коллекция объектов типа User это не то же что коллекция объектов Book. Естественно, первой мыслью было создание различных классов для коллекций (UserCollection, BookCollection, …). Но данных подход не обеспечивает нужной гибкости, плюс ко всему, нужно тратить время на объявление каждого подобного класса.
Немного поразмыслив, реализовал динамическое создание классов коллекций. Выглядит это так: пользователь создаёт коллекцию объектов типа Book, а нужный тип BookCollection создаётся (т.е. объявляется) автоматически.
Идея состоит в том, чтобы коллекции, содержащие объекты различных типов сами по себе различались, а не имели, скажем, один унифицированный тип Collection. Другими словами, коллекция объектов типа User это не то же что коллекция объектов Book. Естественно, первой мыслью было создание различных классов для коллекций (UserCollection, BookCollection, …). Но данных подход не обеспечивает нужной гибкости, плюс ко всему, нужно тратить время на объявление каждого подобного класса.
Немного поразмыслив, реализовал динамическое создание классов коллекций. Выглядит это так: пользователь создаёт коллекцию объектов типа Book, а нужный тип BookCollection создаётся (т.е. объявляется) автоматически.
+17
Собственная сборка Firefox? Легко!!!
1 min
6K
Недавно нашел весьма приятный проект. Называется Firefox Builder
Сервис предназначен для создания кастомизированных под ваши интересы сборок Firefox и Thunderbird.
+23
Выравнивание полей формы с помощью CSS
2 min
166KЗадача
Добиться, чтобы поля ввода находились друг под другом, и при этом их положение определялось максимальной длиной заголовка поля слева. Решение не должно использовать таблиц и JavaScript.

+176
Оптимизация Drupal
17 min
30KВступление
Drupal – довольная распространённая CMS и это отложило на неё свой отпечаток – базовая поставка Drupal является не готовым решением для определённого вида сайта, а фундаментом для его создания. Существуют “сборки” на базе Drupal специализированные под определённые виды сайтов, например: новостные сайты. Но подобные сборки в данный момент мало распространены и плохо поддерживаются. В связи с этим при создании Интернет сайта на основе стандартной поставки Drupal используется большое количество готовых дополнительные модулей и тем оформления для Drupal, либо разрабатываются новые модули и темы специально для создаваемого Интернет сайта. Последним этапом работ по созданию сайта является его оптимизация, которую условно можно разбить на 4 шага:
Drupal – довольная распространённая CMS и это отложило на неё свой отпечаток – базовая поставка Drupal является не готовым решением для определённого вида сайта, а фундаментом для его создания. Существуют “сборки” на базе Drupal специализированные под определённые виды сайтов, например: новостные сайты. Но подобные сборки в данный момент мало распространены и плохо поддерживаются. В связи с этим при создании Интернет сайта на основе стандартной поставки Drupal используется большое количество готовых дополнительные модулей и тем оформления для Drupal, либо разрабатываются новые модули и темы специально для создаваемого Интернет сайта. Последним этапом работ по созданию сайта является его оптимизация, которую условно можно разбить на 4 шага:
- встроенная оптимизация Drupal;
- оптимизация Drupal с помощью модулей;
- оптимизация конфигурации и обслуживания Drupal;
- оптимизация сервера.
+56
Типограф в FCKEditor
1 min
2.7KПользуетесь FCKEditor и хотите чтоб ваш сайт выглядел хорошо с точки зрения типографики, но не хочется каждый раз куда-то лезть? тогда это для вас, Plugin для FCKEditor который позволяет оттипографить прямо в редакторе.
За основу моего был взят плагин http://click1.ru/book/tipograf-plagin-k-redaktoru-fck, после того как он у меня сразу не захотел работать пришлось допилить его немного ручками, в результате чего получился мой вариант этого плагина.
За основу моего был взят плагин http://click1.ru/book/tipograf-plagin-k-redaktoru-fck, после того как он у меня сразу не захотел работать пришлось допилить его немного ручками, в результате чего получился мой вариант этого плагина.
+27
Nested Sets + MySQL TRIGGER
7 min
9.9KЗадача
Задача такая же как и в предыдущей статье, только применимо к MySQL.
Грабли
Хорошая новость ребята! В MySQL нет проблемы с рекурсивными триггерами! Разработчики MySQL просто тупо лочат изменяемую таблицу даже на уровне триггера, вот редиски. Но, собственно, нас может остановить только отключение электричества.
Есть небольшая лазейка, с… объединенными таблицами. Хотя я не нашел в документации подтверждения того, что это так специально было задумано, но и отрицания тоже не было. Правда есть вероятность того, что эту лазейку могут прикрыть, хотя я не вижу в этом смысла.
Увы, механизм триггеров в MySQL новый и довольно сырой, что накладывает некоторые ограничения на его использование, но все же его достаточно для решения нашей задачи.
+29
Ломаем капчу
3 min
80KГуляя по просторам интернета, зашёл на один высокопосещаемый древний сайт рунета. Для того, чтобы скачать файлик с этого сайта, нужно угадать вот такую капчу:

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

В очередной раз видя картинку с цифрами — решился. В голове уже давно проносились мысли, сломать какую-нибудь капчу :)
Ставлю себе задачу: Написать скрипт, который будет расшифровывать показанную капчу и выплевывать драгоценные циферки.
Название сайта специально не привожу — сами догадаетесь :)
Итак, поехали!
+282
10 вещей которые необходимо сделать после установки WordPress (шпаргалка начинающим)
4 min
14KTranslation

5-минутная инсталляция WordPress это здорово – так легко создать свой блог! Однако, после установки WordPress, вам необходимо будет сделать еще несколько шагов, чтобы добиться от вашего блога как можно лучшего результата.
Нижеследующая информация может быть использована как памятка или шпаргалка при установке движка.
+31
Угон JSON
1 min
5.6KTranslation
.jpg)
+40
Кэширование селекторов для jQuery. Плагин
1 min
3.7KПростой плагин для jQuery, позволяющий закэшировать работу селекторов.
По наводке tenshi в камментах к habrahabr.ru/blogs/javascript/63119
По наводке tenshi в камментах к habrahabr.ru/blogs/javascript/63119
+9
C#-like cобытия для PHP. Reflection, closures…
4 min
1.2KЗадача — сделать на PHP эвенты а-ля C# т.е. произвольный объект может генерировать события. Другие объекты могут на эти события подписываться непосредственно у экземпляра генерирующего объекта.
Основное отличие от того что видел ранее — строгая проверка навешиваемого хука. Проверяется наличие метода, количество его аргументов, etc…
Основное отличие от того что видел ранее — строгая проверка навешиваемого хука. Проверяется наличие метода, количество его аргументов, etc…
+1
Information
- Rating
- Does not participate
- Location
- Сейшеллы, Сейшеллы
- Date of birth
- Registered
- Activity