Как стать автором
Обновить
0
@pwlnwread⁠-⁠only

Пользователь

Отправить сообщение

Google выпускает skipfish — сканер безопасности сетевых приложений

Время на прочтение1 мин
Количество просмотров436
imageПолностью автоматизированный инструмент проверки безопасности ваших веб приложений от Google. Основные возможности:

высочайшая скорость: написан на C, оптимизированные HTTP запросы, минимальные требования к CPU — скорость запросов легко достигает 2000 в секунду.

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

отличная логика безопасности: высокое качество работы, различные способы проверки безопасности.

Поддерживаются операционные системы — Linux, FreeBSD, MacOS X и Windows (требуется Cygwin).

Google skipfish

Профилактика SQL-инъекций

Время на прочтение4 мин
Количество просмотров36K


SQL-инъекции (также известные как «Нарушение в целостности структуры SQL-запроса») являются одними из самых распространённых и наиболее опасных уязвимостей в вопросе безопасности. SQL-инъекции очень опасны, потому что они открывают двери хакерам в вашу систему через веб-интерфейс, и позволяют получить неограниченный доступ: например удалять таблицы, изменять базу данных, и даже получить доступ к внутренней корпоративной сети. SQL-инъекции это чисто программная ошибка, и не имеет ничего общего с хост-провайдером. Итак, вы занимались поисками безопасного JSP хостинга, PHP хостинга, или любого другого, вы должны знать, что за профилактику SQL-инъекций несут ответственность только разработчики, а не хост провайдер.

Почему же происходят SQL-инъекции


SQL-инъекции это очень распространённая проблема, но по иронии судьбы, их также легко предотвратить. SQL-инъекции так распространены, поскольку очень много мест, где может присутствовать уязвимость, и в случае успешной инъекции, хакер может получить хорошую награду (например полный доступ к данным в базе).
Читать дальше →

PHPUnit. Автоматические тесты

Время на прочтение4 мин
Количество просмотров63K
Предисловие переводчика:
Недавно начал изучать PHPUnit (framework семейства xUnit) и с удивлением обнаружил, что на русском языке нет статей про автоматические тесты для самых-самых чайников.
В первой главе документации по PHPUnit на примерах очень доступно рассказывается, что такое автоматическое тестирование.


Даже хорошие программисты допускают ошибки. Разница между хорошим программистом и плохим заключается в том, что хороший программист как можно чаще использует тесты, чтобы найти свои ошибки.
Чем раньше Вы начнете тестировать, тем выше Ваши шансы найти ошибку, и тем ниже цена исправления.
Это объясняет, почему откладывание тестирования до момента передачи программы заказчику является очень плохой практикой. Большинство ошибок так и не будет найдено, а цена исправления станет такой высокой, что Вам придется составить большой график работы, т.к. сразу Вы не сможете их все исправить.
Читать дальше →

Сам себе антивирус

Время на прочтение5 мин
Количество просмотров4.9K
Жизнь компьютера идет своим чередом, но в один прекрасный момент комп перезагружается, а потом на рабочем столе появляется надпись «У вас вирусы, антивирус качать тут». Кто-то скачивает и ставит, кто-то сносит винду, кому-то везет и его антивирус ловит заразу… А я вам попробую рассказать как решить проблему самому и зачем это нужно.

Читать дальше →

Необычный оператор диапазона

Время на прочтение6 мин
Количество просмотров4.9K
Должен предупредить, что это ещё одна статья, не содержащая никаких откровений. Для тех супер-гиков, которые назубок знают весь perldoc, она будет абсолютно бесполезной, так что, уважаемые супер-гики, можете проходить мимо и не информировать, что всё это есть в доках. Я и так это знаю. :-) Моя статья для всех остальных, для тех, кто весь perldoc целиком либо не осилил, либо осилил, но не понял, либо понял, но не запомнил.

Я думаю, многие знают о так называемом операторе диапазона, записывающемся как .. (две точки), с помощью которого можно быстро создавать массивы из набора последовательных элементов. Например, следующий код создаёт массив из 35 чисел: 3, 4, 5, …, 37:
my @arr = 3 .. 37;
Помимо чисел можно использовать строки: в этом случае для генерации элементов массива будет выполняться так называемый магический инкремент (например, можно задать диапазон букв: 'a' .. 'z').

Однако оператор диапазона может использоваться и в скалярном контексте, принимая в качестве операндов булевские выражения и возвращая булевский результат. И вот здесь начинается самое интересное, потому что это оператор с состоянием: результат операции будет зависеть не только от значений левого и правого операндов, но ещё и от истории вызовов данного выражения!
Читать дальше →

LogParser — привычный взгляд на непривычные вещи

Время на прочтение5 мин
Количество просмотров58K
Когда я в очередной раз использовал LogParser, то чтобы проникнуться и чужим опытом, ввел его название в поиск на Хабре. Как результат — сообщение «Удивительно, но поиск не дал результатов». Вот уж воистину удивительно, когда столь интересный инструмент обойден вниманием. Пришла пора восполнить этот пробел. Итак, встречайте LogParser. Маленькая, но чертовски полезная утилита для любителей SQL.

Из названия инструмента, казалось бы, очень непросто понять, что он делает в разделе SQL. А правда заключается в том, что он такой же LogParser, как и ChartGenerator. В то смысле, что он справляется с обоими задачами с одинаковыми успехом. В целом я бы его охарактеризовал как SQL-процессор гетерогенных данных. Концепция работы в общем такова, что он берет данные из некоторого формата и преобразует их в табличный вид (собственно говоря, только на этом этапе и выполняется иногда парсинг). Затем, посредством выполнения над этими табличными данными некоторого SQL-запроса формирует таблицу с результатом и сохраняет ее опять же в некотором формате. Если коротко, то цепочка выглядит как подготовка входных данных->SQL-процессинг->генерация выходных данных.
Читать дальше →

Виджеты: 1,8 миллионов переходов на сайты партнеров за неделю

Время на прочтение1 мин
Количество просмотров2.3K
Виджетная программа Яндекса растет и развивается. Пользователи не только устанавливают всё больше виджетов, но и всё чаще кликают по ссылкам в них.

За первую рабочую неделю января посетители страницы www.yandex.ru перешли по ссылкам в виджетах 1,847,000 раз. Это значит, что сайты – владельцы этих виджетов – бесплатно получили почти два миллиона дополнительных хитов. Стоит отметить, что это «полезные» хиты: пользователи кликают по ссылкам в виджете, когда хотят увидеть на сайте более подробную информацию.

Средний CTR в первой сотне самых кликабельных виджетов составил 15,4%. Для сравнения, кликабельность виджета Яндекс.Новостей в верхней части страницы была 9,18%. Такой высокий CTR означает, что хорошо сделанный виджет востребован пользователями. С его помощью им удобно следить за обновлениями на сайте и они чаще заходят на него.

Радует, что высоким спросом пользуются виджеты из недавно присоединившихся к программе стран. Например, виджет «Новости Севастополя» за один день первой рабочей недели сгенерировал 1170 переходов на сайт (5000 показов виджета на главной странице Яндекса, CTR 23,4%). Таким образом, за счет дальнейшей рекламы виджета можно заметно повысить количество переходов на сайт.

О том, как сделать и добавить в каталог собственный виджет, читайте в кабинете разработчика.

ОРВи (отдел региональных виджетов) .

Управляйте Панорамами с клавиатуры!

Время на прочтение1 мин
Количество просмотров2.7K

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

Вот и нам (прошедшим путь от Mario до Counter-Strike) тоже хотелось погрузиться в виртуальный город и погулять по нему с помощью стандартных сочетаний клавиш. И теперь это возможно:

– кнопки «вверх» и «вниз» («W» и «S») отвечают за переходы на соседние панорамы;
– кнопки влево/вправо («A» и «D») для поворота по горизонтали;
– кнопки PgUp/PgDown для поворота по вертикали;
– кнопки «+» и «-» позволяют зумиться.

В полноэкранном режиме управление с клавиатуры доступно только для 10-й версии Flash Player, но и там, к сожалению, с ограничениями. Это связано с особенностями работы  Flash Player в полноэкранном режиме.

Есть и другие сочетания клавиш, полностью описанные в разделе Помощи.

Добавление возможности управлять Панорамами с клавиатуры – это лишь первый шаг в улучшении наших Панорам. Будут и другие, но об этом чуть позже :-)

Маша Орлова, Андрей Иванов, любим с детства нажимать на кнопки

.

Разберемся раз и навсегда: AJAX, «кириллические символы», кодировки, prototype.js, jQuery, JsHttpRequest

Время на прочтение5 мин
Количество просмотров169K
AJAX, — это технология. Одной из часто используемых техник этой технологии является
посылка запросов при помощи объекта класса XMLHttpRequest.


Как же посылать и принимать AJAX запросы в нужной нам кодировке, нужно ли использовать однобайтовые кодировки или не обойтись без UTF-8. На все эти вопросы раз и навсегда ответит эта статья.

Читать дальше →

По просьбам трудящихся: Dual ISP на маршрутизаторах cisco без BGP

Время на прочтение4 мин
Количество просмотров62K
Типичная задача, которая тем не менее, продолжает вызывать массу вопросов.

Попробую вкратце описать суть технологии и подводные камни.

Итак, пусть у нас есть один пограничный маршрутизатор cisco с одним внутренним портом (g0/0) и двумя внешними (f0/0, f0/1). Есть подключение к двум провайдерам, каждый из которых выдал свой пул адресов Pool(ISP1) и Pool(ISP2) (это некоторые сети, принадлежащие конкретному провайдеру). Пусть для простоты адреса интерфейсов f0/0 и f0/1 из этих же пулов. И адреса шлюзов из этих же пулов (Gate(ISP1) и Gate(ISP2) соответственно).
Так как у нас нет возможности поднять BGP, значит мы должны на каждого из провайдеров прописать маршрут по умолчанию. И вот тут возникает первый вопрос: какую задачу мы хотим решить? Резервирование или одновременная работа с двумя провайдерами?
Читать дальше →

Где погрызть гранит науки

Время на прочтение4 мин
Количество просмотров28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты

PHP модуль — это всё ещё просто. Часть вторая

Время на прочтение7 мин
Количество просмотров6.2K
Пока nerezus сочиняет статью о встраивании PHP, я постараюсь продолжить его рассказ о написании расширений. Рассказано будет далеко не всё, поскольку я считаю, что сложность наращивать надо постепенно, иначе материал будет трудноусвояемым и совсем не питательным. В связи с этим я всё-таки не расскажу в этот раз, как подменить операторы в классе, кто захочет, может почитать исходники модуля Operator от Сары Големон — основного автора какой бы то ни было информации о разработке расширений PHP.
Поскольку разработку я веду исключительно в линуксе, то писать мы будем без всяких хитрых аддонов к Visual Studio, ручками, с нуля :) А что, лучше сразу разобраться, а потом уже упрощать свой труд.
Поехали?

Инструменты для визуализации логов профайлера xdebug

Время на прочтение2 мин
Количество просмотров23K
Наверное многие php разработчики используют профайлер xdebug для поиска узких мест в приложениях. Но просто смотреть логи очень не удобно, поэтому были созданы инструменты для их визуализации. Об этих инструментах я и хочу коротко рассказать.

Webgrind

Webgrind это набор php скриптов, которые можно установить на локальный или удаленный веб сервер. Дальше все просто до неприличия — закачиваем файл лога и смотрим статистику.
image
Самый очевидный плюс Webgrind'а это кроссплатформенность и простота установки.
Показывает список функций которые вызывались, количество вызовов (Invocation Count), общеё время потраченное на вызов (Total Self Cost) и общее время потраченное на выполнение (Total Inclusive Cost).
Можно скрыть php функции. Можно перейти внутрь функции, чтобы увидеть развернутую статистику.
Читать дальше →

Map/Reduce: решение реальных задач — TF-IDF

Время на прочтение6 мин
Количество просмотров21K
Вчера я задал вопрос в своем ХабраБлоге — интересно ли людям узнать, что такое Hadoop с точки зрения его реального применения? Оказалось, интересно. Дело недолгое — статью я написал довольно быстро (по крайней мере, ее первую часть) — как минимум, потому, что уже давно знал, о чем собираюсь написать (потому как еще неплохо помню как я сам тыкался в поиске информации, когда начинал пользоваться Hadoop). В первой статье речь пойдет об основах — но совсем не о тех, про которые обычно рассказывают :-)

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

Что такое Hadoop?




Ну скажите, какой смысл об этом писать? Уже не раз это проговаривалось, неоднократно начинали писаться посты на тему Hadoop, HDFS и прочая. К сожалению, обычно все заканчивалось на довольно пространном введении и фразе “Продолжение следует”. Так вот: это — продолжение. Кому-то тема, затрагиваемая в этой статье может показаться совершенно тривиальной и неинтересной, однако же лиха беда начало — любые сложные задачи надо решать по частям. Это утверждение, в частности, мы и реализуем в ходе статьи. Сразу замечу, что я постараюсь избежать написания кода в рамках этой конкретной статьи — это может подождать, а понять принципы построения программ, работающих с Map/Reduce можно и “на кошках” (к тому же с текущей частотой кардинального изменения API Hadoop любой код становится obsolete примерно через месяц).

Когда я начинал разбираться с Хадупом, очень большой сложностью лично для меня стало первоначальное понимание идеологии Map/Reduce (я предпочитаю писать это словосочетание именно так, чтобы подчеркнуть, что речь идет не о продукте, а о принципе). Суть и ценность метода станет понятна в самом конце — после того, как мы решим несложную задачу.
Читать дальше →

Вскрываем эксплоиты, шифрованный javascript, вредоносные iframe — русский мануал Malzilla

Время на прочтение3 мин
Количество просмотров5.7K
Интересуясь информационной безопасностью, я часто имею дело с зараженными сайтами, содержащими фреймы на эксплоиты, шифрованный javascript, запутанные редиректы… Для облегчения работы я использую open source программу Malzilla. К сожалению на русских просторах интернета очень мало информации об этой тулзе, поэтому я хочу перевести официальный мануал к ней. Всего в нем 6 частей, ниже следует перевод первой из них.
Читать дальше →

Web-телефония. Обзор решений

Время на прочтение4 мин
Количество просмотров13K
PhoneВ этой статье я расскажу о том, какие существуют методы реализации голосовой связи для web-проектов.
Статья носит обзорный характер и ориентирована на самый широкий круг читателей. Однако, любой желающий найдет все необходимые ссылки для углубления в суть вопроса.

Будут рассмотрены следующие задачи:
  1. Голосовая связь один на один между пользователями сайта.
  2. Голосовая конференция, то есть разговор более чем 2 собеседников.
  3. Звонки на стационарные и мобильные телефоны из браузера.
Повторюсь и скажу, что все задачи решаются в рамках web-среды. Основное условие: пользователям не требуется установка дополнительного ПО, только браузер и Flash Player.
Читать дальше →

dklab_multiplexor: постоянное Javascript-соединение с сервером в условиях сотен тысяч онлайн-клиентов

Время на прочтение4 мин
Количество просмотров6.8K
Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из JavaScript. Это например, полезно при организации онлайн-чатов или мгновенных уведомлений.

Dklab_multiplexor не претендует на полную универсальность или исключительность (кстати, если знаете аналоги, близкие по простоте к multiplexor-у, пишите в комментариях). Это лишь простейший инструмент, который наконец-то дошли руки опубликовать.

Зачем это нужно?


Предположим, посетители вашего сайта могут посылать друг другу сообщения. Если получатель в момент отправки находится на сайте (просматривает какую-либо страницу), ему немедленно выдается уведомление (всплывающее окошко на JavaScript).

Данную задачу можно решить двумя способами.
  1. Неправильный способ. Раз в 10 секунд делать из JavaScript запрос на сервер для проверки, не появилось ли новых сообщений. Этот метод не работает, если на сайте одновременно находится очень большое количество пользователей, т.к. нагрузка на сервер растет слишком быстро. Кроме того, потребление трафика пользователем также оказывается крайне высоким.
  2. Правильный способ. Устанавливать постоянное и длительное соединение с сервером, ожидая поступления данных через него. Если сообщений нет, соединение просто держится открытым на протяжение нескольких минут. Если соединение по каким-либо причинам закрылось, оно вновь открывается. В итоге и трафика потребляется мало, и нагрузка на сервер оказывается невелика. Так работает GMail, Мой Круг и т. д., и именно на этом принципе построен dklab_multiplexor.
+-------------------+                    ------------------ 
| Сервер обработки  |                   |                  |   <===WAIT=== Клиент A
| и базы данных     |  ======IN=======> |   Мультиплексор  |   <===WAIT=== Клиент B
| (e.g Apache + PHP |                   |                  |   <===WAIT=== Клиент C
+-------------------+                    ------------------ 
(указаны направления установления TCP-соединений).
Читать дальше →

Топ-5 региональных порталов

Время на прочтение4 мин
Количество просмотров4.5K
Так как сам делаю региональный проект, о котором, наверняка, расскажу в одном из постов, меня заинтересовало то, как развиты региональные порталы на просторах нашей необъятной страны.

Открыв раздел «Города и регионы» в каталоге LiveInternet`a, отобрал проекты сделанные в регионах и ориентированные в основном на региональную аудиторию, составив вот такой вот ТОП-5 региональных порталов.

1) E1.RU (г. Екатеринбург, дата регистрации домена: 22.02.2000).



С приличным отрывом от остальных первое место занимает наш екатеринбуржский портал, чему я несказанно рад… Или не рад (?)… Портал действительно большой и действительно очень функциональный и полезный, не смотря на тот беспорядок блоков, да и структуры в целом. Стоит отметить тот факт, что, на мой взгляд, как минимум половина сделок по продаже б.у. автомобилей и недвижимости во всём городе осуществляется именно через e1.ru.

Среднесуточная посещаемость: около 160 000 человек в день. Бывают взлёты до 200 000 в день – не плохо для регионального портала, неправда ли?
Читать дальше →

Организация видео трансляции

Время на прочтение2 мин
Количество просмотров173K
Предлагаю сообществу поделиться своим опытом в области видео трансляций.
Может получится создать что-то на подобии мини пособия.
Схема простая: кто-то задает вопрос, а знающий ответ – делиться информацией. И всё это попадает в топик.
Попробую начать из того, что узнал по советам и ответам на форумах.
Читать дальше →

Многомерные кубы, OLAP и MDX

Время на прочтение5 мин
Количество просмотров120K
OLAP Довольно давно являюсь обитателем Хабра, но так и не доводилось читать статьи на тему многомерных кубов, OLAP и MDX, хотя тема очень интересная и с каждым днем становится все более актуальной.
Не секрет, что за тот небольшой промежуток времени развития баз данных, электронного учета и онлайн систем, самих данных накопилось очень много. Теперь же интерес также представляет полноценный анализ архивов, а возможно и попытка прогнозирования ситуаций для подобных моделей в будущем.
С другой стороны, большие компании даже за несколько лет, месяцев или даже недель могут накапливать настолько большие массивы данных, что даже их элементарный анализ требует неординарных подходов и жестких аппаратных требований. Такими могут быть системы обработки банковских транзакций, биржевые агенты, телефонные операторы и т.д.
Думаю, всем хорошо известны 2 разных подхода построения дизайна баз данных: OLTP и OLAP. Первый подход (Online Transaction Processing — обработка транзакций в реальном времени) рассчитан на эффективный сбор данных в реальном времени, второй же (Online Analytical Processing – аналитическая обработка в реальном времени) нацелен именно на выборку и обработку данных максимально эффективным способом.

Давайте рассмотрим основные возможности современных OLAP кубов, и какие задачи они решают (за основу взяты Analysis Services 2005/2008):
  • быстрый доступ к данным
  • преагрегация
  • иерархии
  • работа с временем
  • язык доступа к многомерным данным
  • KPI (Key Performance Indicators)
  • дата майнинг
  • многоуровневое кэширование
  • поддержка мультиязычности

Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность