Search
Write a publication
Pull to refresh
6
0
Алексей Басс @alexbig

User

Send message

Не используйте @import

Reading time3 min
Views62K
В данной статье автор Steve Souders приводит наглядные доказательства, почему не стоит использовать import для загрузки стилей в документ.

LINK vs. import


Существует 2 способа загрузки файлов стилей. Использовать тег LINK:
<link rel='stylesheet' href='a.css'>

Или импортировать файлы с помощью import:
<style>
@import url('a.css');
</style>

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

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Юнит-тестирование в PHP

Reading time13 min
Views189K
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.

В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
Начнем?..

Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

Reading time6 min
Views316K
image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
Читать дальше →

Жизнь после фриланса

Reading time4 min
Views12K
По мотивам статьи dmalinovsky «Жизнь во фрилансе глазами программиста».

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

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

Vim как IDE для веб-разработки, и не только.

Reading time12 min
Views102K
В данной статье рассматриваются мощные плагины, позволяющие повысить удобство разработки в VIM, а также даются ценные указания по их доработке и использованию. В том числе, используемых команд и горячих клавиш.

Рассмотрена настройка через конфигурационный файл vimrc и приведены ссылки на статьи с описанием отдельных моментов.

Кого-то VIM оттолкнет, показавшись поначалу слишком сложным или неудобным. Однако не стоит недооценивать его гибкость и возможность настройки себя, ведь из VIM можно буквально вылепить идеальный редактор/IDE, таким, каким вы представляете его себе.

Надеюсь, что эта статья поможет читателю убедиться в этом. Безусловно, она ориентирована, в первую очередь, на опытных пользователей Vim'а, но и новички смогут почерпнуть из нее немало полезного.

Я постарался писать как можно компактней, но без потери содержательной части, но статья все-равно вышла довольно объемной. Материал логически разбит на несколько разделов и совсем не обязательно читать его по порядку. Тем не менее, прочитать сведения по установке плагинов и настройке vimrc я рекомендую настоятельно.


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

Три редкоиспользуемые оси в XPath

Reading time2 min
Views82K
Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

ancestor


Задача: получить атрибут id элемента-«прадеда» foo.

Обычно в таких случаях начинают рисовать лестницы:

../../../@id

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

ancestor::foo[1]/@id

Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
Читать дальше →

Безопасный код в Друпале: Подделка межсайтовых запросов

Reading time5 min
Views1.4K


(ч2. Работа с базой данных; ч3. Работа с пользовательским вводом)

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

Итак, подделка межсайтовых запросов (анг. Сross Site Request Forgery, или, сокращенно, CSRF): что это такое и с чем его едят.

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

Данный тип атак, вопреки распространённому заблуждению, появился достаточно давно: первые теоретические рассуждения появились в 1988 году, а первые уязвимости были обнаружены в 2000 году.

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

Съемка развлекательной телепередачи — дубль 1 (начало)

Reading time5 min
Views9.2K
Так уж случилось, что довелось мне сотрудничать в области разного железа и софта с несколькими телеканалами по поводу съемок различных развлекательных телепередач. Времени было достаточно для неплохого понимания процесса и технологий съемки подобных проэктов. Собственно говоря, о том как, кем, на каком оборудовании и с помощью какого ПО делаются такие передачи и будет серия статей. Начнет ее данная статья — о том, с чего начинается съемка развлекательной телеперадачи. Вторая статья расскажет о самом процессе съемок и ролях участников съемочной бригады. Третья — о применяемом железе и софте (начать с нее не могу — без понимания процесса будет абсолютно непонятно зачем вообще нужна та или иная железка).

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

Съемка развлекательной телепередачи — дубль 3 (железо и софт)

Reading time10 min
Views4.2K
Итак, это третья часть цикла статей о том, как снимаются развлекательные телепередачи. В первой части было рассказано о предсъемочной подготовке, во второй — о процессе съемок и задействованных людях, эта часть будет о используемом программном и аппаратном обеспечении.
Читать дальше →

DNS Amplification (DNS усиление)

Reading time6 min
Views95K
Не так давно столкнулся с проблемой (и ее решением) учитывая актуальность этой темы в последнее время, а также то, сколько людей сейчас страдают от этой беды, решил объединить информацию в одну статью. Может быть кому-то еще она будет полезной.
image

Начало



Пару недель назад я заметил странную активность, направленную на мой DNS-сервер. Сразу скажу, что использую шлюз на Linux, соответственно там установлен DNS-сервер bind. Активность заключалась в том, что на порт 53 (DNS) моего сервера сыпалось по несколько UDP пакетов в секунду с различных IP-адресов:

10:41:42.163334 IP 89.149.221.182.52264 > MY_IP.53: 22912+ NS?. (17)
10:41:42.163807 IP MY_IP.53 > 89.149.221.182.52264: 22912 Refused- 0/0/0 (17)
Читать дальше →

Загрузка файлов и open_basedir: почему надо пользоваться стандартными функциями

Reading time2 min
Views38K
Казалось бы вопрос загрузки файлов на сервер обсосан до косточек, но одно недавнее событие заставило меня в этом усомниться.

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

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

Знакомство с jabber ботами

Reading time4 min
Views11K
imageДлительное время я использовал джаббер только в роли меседжера, однако несколько недель назад мне попался адрес джаббер бота, который был словарем, что представилось мне крайне удобным в использовании. В скором времени мой ростер пополнился десятком удобных ботов, и в поиске новых я, в том числе, исследовал хабр, но не нашел ничего. Я решил заполнить эту нишу и создать сводный список ботов, известных мне, которые, по-моему мнению, могут заинтересовать.
Читать дальше →

Разработка модуля для Apache 2.x

Reading time16 min
Views12K

Предисловие



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

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

Firebug: Part 2 — commands

Reading time2 min
Views1.7K
Это продолжение серии статей про Firebug.

Весь цикл: Console, Commands, Debugging ,Profiling

Firebug имеет приятную особенность — собственные функции.
Некоторые из них вам уже встречались, например в Prototype.
И чтобы вы не сомневались в том, что все честно, то мы продолжим мучать домашнюю страничку Firebug, т.к. на ней нет подключенных js файлов.

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

Firebug: Part 1 — console

Reading time2 min
Views7.9K
Данной статей я хочу начать серию, посвященную всеми любимому Add-on к Firefox под названием Firebug.

Весь цикл: Console, Commands, Debugging ,Profiling

Я постараюсь раскрыть известные и не очень его возможности, которые могут пригодиться любому Web-разработчику(а могут и не пригодиться, но это врядли).

Если у вас его еще нету, то можно скачать со страницы http://getfirebug.com.

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

Атаки на беспроводные сети. Часть 1

Reading time5 min
Views71K
В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.

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

Почта Для Спама — Mailforspam.com

Reading time1 min
Views8.5K
Приветствую харбро сообщество!!!
Так случилось, что наступил кризис и три хабровца gorp, zinich,newatol (уже известные по стартапу Закладки на картинки), остались на две недели без работы, потому мы решили реализовать давний замысел, а именно сделать сервис одноразовой почты, а точнее Почты Для Спама.

Ситуация: надо зарегистрироваться на СТРАННОМ сервисе и подтвердить свою почту, НО ВЫ НЕ ХОТИТЕ светить свою РОДНУЮ почту. Что делать ?!
Читать дальше →

Общий обзор стандартных средств наблюдений за системой

Reading time5 min
Views17K
Уровень сложности: начальный

Вводный обзор стандартных инструментов GNU/Linux должен помочь начинающим пользователям Linux контроллировать работу ОС. Используемые приложения, как правило, включены в поставку известных дистрибутивов. Полезным побочным эффектом я считаю возможность сориентировать молодых системных и сетевых администраторов в условиях [подозрения] компрометации.
Читать дальше →

Information

Rating
Does not participate
Location
Израиль
Registered
Activity