программист, синьор-помидор :)
Уязвимость в стандартной функции glob() как угроза для FTP-серверов
Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.
Особенную опасность данная ошибка представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом. Очевидно, запрос на листинг файлов с вышеприведенной маской приводит к скорому отказу в обслуживании FTP-сервера.
Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.
Желающим попробовать уязвимость в действии могу предложить набрать в bash консоли команду наподобие
ls ../../*/../*/*/../../*/*/*/*
Можно эксплуатировать, например, из PHP:
php -r 'print glob("../../*/../*/*/../../*/*/*/*");'
или Python
python -c 'import glob; glob.glob("../../*/../*/*/../../*/*/*/*")'
и из любого другого языка, обращающегося к этой функции.
Оригинальный отчет об уязвимости тут: securityreason.com/securityalert/7822
extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
<script src="..."></script>
задерживает отрисовку страницы, пока не загрузится этот скрипт. Если их десятки — это может сереьезно замедлить работу сайта — в результате пользователь 20 секунд пялится на пустую (или недорисованную) страницу из-за какого-нибудь тупящего социального виджета (умножить на десяток этих виджетов). Не правда ли было бы круто, если бы можно было сказать
<script extsrc="..."></script>
("extsrc" = "грузи потом"
), чтобы скрипты загружались после того как страница отрисована? Все бы хорошо, но есть
document.write
… Сегодня я наконец решил его проблему — представляю extsrc.js — скрипт, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write
— и правильно отрисуется все).Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.
Использование:
Заменяем
<script src="...">
на <script extsrc="...">
.Итого получается:
<script src="http://whiteposts.com/extsrc_js/extsrc.js"></script>
<script extsrc="..."></script>
Юнит-тестирование и CodeCoverage для Javascript-кода
Stuxnet поразил более 1000 предприятий Китая
Полезные мелочи: перекодировка неправильной раскладки
Владение методом слепого набора, конечно, существенно уменьшает эту вероятность, но казусы всё равно случаются.
Особенно обидно, если текст довольно большой и перенабирать лень.
Выпущено исправление уязвимости связанное с приложениями ASP.NET
Загрузить исправление можно по следующим ссылкам:
- .NET Framework 1.1 Service Pack 1 and Windows Server 2003 Service Pack 2 (32-bit) (link).
- .NET Framework 3.5 on Windows Server 2003 and Windows XP (link);
- .NET Framework 3.5, Windows Vista Service Pack 1 and Windows Server 2008 (link);
- .NET Framework 3.5 Service Pack 1 on Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008 (link);
- .NET Framework 3.5 Service Pack 1 on Windows Vista Service Pack 1 and Windows Server 2008 (link);
- .NET Framework 3.5 Service Pack 1, Windows Vista Service Pack 2, and Windows Server 2008 Service Pack 2 (link);
- .NET Framework 3.5.1 on Windows 7 and Windows Server 2008 R2 (link);
- Microsoft .NET Framework 4 (link);
QtCreator TODO Plugin. Продолжение

Некоторое время назад я писал о разработанном мною плагине отображающем список все TODO, FIXME и т. д. комментариев в текущем открытом документе. Вчера я выпустил новую версию этого плагина, в которой получилось довольно много изменений, вот ключевые из них:
- Появились настройки
- Теперь можно добавлять свои ключевые слова для поиска и задавать цвет и иконку их вывода.
- Можно выбирать куда выводить информацию: в стандартное окно «Build issues» или в отдельное «TODO Output».
- Можно выбирать: попрежнему выводить информацию только о текущем открытом файле или собирать информацию со всего текущего проекта.
- Комментарии на языках отличных от английского теперь отображаются корректно.
Во время разработки удалось накопать несколько интересных вещей, которые могут пригодится другим разработчикам плагинов, чем и поделюсь под катом.
Интерпретатор Brainfuck размером 160 байт
s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;}
Load average

Вы только послушайте!
Мы хотим поделиться с вами очередной хорошей новостью от Яндекса: сегодня запускается бета-версия нового сервиса — Яндекс.Музыка. Он позволяет не только находить, но и слушать музыку, хранящуюся в музыкальном каталоге Яндекса, который мы бережно собираем для вас. Сейчас в каталоге около 800 тысяч треков от 58 тысяч исполнителей — от Wu Tang Clan до Алены Свиридовой.
Несомненно, многие из вас уже встречали наш музыкальный плеер на странице результатов веб-поиска, когда искали музыкальные композиции. Мы решили расширить возможности поиска музыки: с этого момента плеер будет показываться не только при поиске композиций, но и при поиске исполнителей (Louis Armstrong или или Feist) и альбомов (Moby «Play» или Pink Floyd «The Wall»)! Теперь прямо на странице результатов поиска вы можете прослушать три наиболее популярные композиции исполнителя или три первые трека из альбома.
Однако плееры в поиске Яндекса — это лишь часть сервиса. После перехода по ссылкам в плеере вы попадаете на страницы искомых исполнителей, альбомов или сборников. Вы можете составить плейлист (пока только один, но мы научим их «размножаться»), добавляя в него композиции или целые альбомы. Слушайте и наслаждайтесь!
Сорванные дедлайны министерств
В плане по переходу на электронное обслуживание населения указаны четкие сроки для каждого этапа. Конечно, наши чиновники не могли не упустить такую возможность и не затянуть с выполнением распоряжения.
Мы представляем ТОП-5 министерств, которые не успели по срокам перевода своих услуг в интернет.
Пятое место. Роструд, МИД России, Минобрнауки, МВД и Росреестр
У Каждого Министерства по одной невыполненной гос услуге. Роструд еще в декабре 2009 обещал доступ к формам заявлений по получению информации о положении на рынке труда в Российской Федерации, правах и гарантиях в области занятости населения и защиты от безработицы.
Высокодоступное отказоустойчивое web-приложение на Apache2 и MySQL
HA-Apache2 Web-Site and HA-MySQL
Цель: обеспечить высокую доступность web-приложения и минимальное время простоя при отказе одного как web-сервера, так и сервера баз данных.
Замечание! Схема предполагает, что web-приложение и база данных находится на разных серверах.
Для примера будем устанавливать wordpress.
Вариант решения:
Поскольку web-приложение должно быть постоянно доступно, то необходимо минимум два сервера с установленным приложением. Серверы будут отслеживать состояние друг друга, при этом в каждый момент времени ведущим будет только один из них. В случае отказа ведущего сервера его роль принимает второй. Когда первый сервер будет вновь доступен, к нему опять вернется роль ведущего.
Understanding node.js
Если вы относитесь ко второй группе, я попробую объяснить, что же такое Node.js:
- Это инструмент командной строки. Вы скачиваете архив, компилируете и устанавливаете его.
- Это позволит вам выполнять программы на JavaScript, набрав 'node my_app.js' в терминале.
- JavaScript выполняется движком V8 (тем самым, благодаря которому так быстро работает Google Chrome).
- Node.js предоставляет API для доступа к сети и файловой системе из JavaScript.
Почему Git
Так я и работал бы в SVN, но ничего не стоит на месте. В интернете уже потекли тонкие ручейки новостей про Git. Я не кидаюсь за каждой новой технологией, и прошло уже достаточно много времени, пока мне не прожужжали этим Git’ом все мозги. Мне стало любопытно, я вначале присматривался, примерялся, а потом плюнул и начал новый проект на Git. Мучался с ребятами 2 недели, накачал литературы, написал шпаргалку… ничего, привыкли, … а потом меня поперло.
Теперь меня регулярно просят рассказать про Git и что в нем такого. Уже надоело, поэтому этот пост для тех, кто еще сомневается.
Фреймворк Limb, версия 2010.1 RC2
Для тех, кто не в курсе, Limb это PHP-фреймворк, ориентированный на быструю и гибкую разработку. Наши приоритеты/ гибкость — качество кода — скорость разработки.
Limb одним списком:
- Парадигма — MVC
- DependencyInjection — Toolkit(императивное инстанцирование)
- Организация приложения — InterceptingFilter
- ORM — ActiveRecord
- DBAL — собственная реализация (MySQL 4.1+, SQLite, Oracle (OCI8), PostgreSQL 8.2+, Linter)
- Шаблонизатор — Macro, WACT, Blitz и т.д.
- Тестирование — на основе SimpleTest
Тем, кому не терпится порвать нас в клочья критикой и баг-репортами, прошу забрать код, вооружиться документацией и репортить, репортить, репортить.
База изображений в любых форматах и разрешениях
разработчик: Готово
заказчик: Надо переделать, чтобы аватарки были в PNG
разработчик: Сделал
заказчик: Пусть аватарки будут в GIF, 25×25 и 40×40
разработчик: Ага, проверяй
заказчик: Уже? Как ты это так быстро делаешь???
разработчик: …
Хостинг на AWS (EC2, EBS, S3) для чайников

Рисоваська, часть 3: Амазоновские веб-сервисы в действии
Что такое Amazon Web Services
Это набор удобных сервисов, которые можно использовать как по отдельности, так и вместе. В первую очередь это «облачные вычисления» (анг. Elastic Compute Cloud). Что это значит? Это значит, что вы можете запустить в «облаке» любое кол-во компьютеров нужной вам конфигурации c нужной вам операционной системой всего за пару минут. Это действительно так. Время запуска одного инстанса (instance называется один виртуальный сервер в амазоне) обычно не превышает двух минут. Сразу после запуска инстанс начинает работать, к нему есть root-доступ по SSH или Remote Desktop, если там установлен Windows. Не правда ли, здорово! С момента запуска оплата за инстанс идет по часам. В любой момент вы можете остановить инстанс и деньги за его использование перестанут сниматься. Помимо времени работы инстанса, так же отдельно оплачивается входящий и исходящий трафик.
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity