Евгений Степанищев

Эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.

[Без заголовка]

Одна из известных проблем безопасности на веб-сайта - так называемый XSS (Cross Site Scripting). Вкратце суть в том, что иногда удаётся внедрить на страницу некий код (на скриптовом языке), который может выполнить некоторые вредоностные действия. Например, украсть файлы cookie для этого сайта, если таковые имеются. В cookie часто в каком-то виде хранится информация, которая позволит хакеру залогиниться на этот сайт под вашим логином.

Похоже, фирма Microsoft первая, кто озаботился поиском принципиально новых возможностей решения этой проблемы. Microsoft добавила в свой браузер поддержку так называемых "HTTP-only cookie". Смысл в том, чтобы ставить cookie специальный флаг, который будет показывать, что данную cookie браузер должен сделать недоступной для скриптовых языков. Пример:

Set-Cookie: USER=123; expires=Wednesday, 09-Nov-99 23:12:40 GMT; HttpOnly


Предельно понятно и достаточно действенно. Пока в PHP, в setcookie нет поддержки этого флага, такую cookie можно ставить через вызов header.
Комментировать
6 апреля 2006 20:00

[Без заголовка]

Одной из особенностей языка PHP является то, что существует ровно один интерпретатор этого языка. Это хорошо - никакого разночтения стандартов и прочих проблем наличия интерпретаторов от разных команд. Или, по крайней мере, другие мне не попадались. До сих пор.

Некие умельцы написали Pocket HPH - интерпретатор для PocketPC. Конечно, реализованы далеко не все функции, но и того набора, что есть, хватит, чтобы реализовать что-то приличное. Например, есть даже функции работы с SQLite и регулярными выражениями!
Комментировать
6 апреля 2006 20:00

[Без заголовка]

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

Однажды пpишел к Мудpому Стаpику Стpашный Человек. "Когда я вижу pебенка - pазpываю его на части и гpомадную pадость пpи этом ощущаю! - вскpичал он, pыча и исходя пеной, - когда я достаю pукой до чужой головы - бью pукой, если же ногой - бью ногой, ибо стpашен в гневе! Если же кто-то pаздpажает меня, то я пpосто убиваю его и чувствую гpомадное облегчение!!!".

Тогда Мудpый Стаpик достал из-под циновки пищаль и метким выстpелом сpазил наповал Стpашного Человека, стpашными его мозгами циновку испачкав пpи том изpядно. Однако, паpу минут пpождавши, чувства гpомадного облегчения не испытал, посему счел гостя в оном вопpосе непpавым и от учения своего, добpо и всепpощение пpоповедующего, не отступился...
Комментировать
6 апреля 2006 20:00

[Без заголовка]

Век живи, век учись, больше заработаешь. Язык C я недолюбливаю, преимущественно из-за собственной лени, но, в своё время знал его достаточно хорошо. Но я не знал, что в C есть так называемые "триграфы":

Вообще триграфы были придуманы для терминалов, в которых некоторых символов не хватает. В итоге вместо #define можно написать ??=define. Триграфы подменяются на нужные символы в самом начале, поэтому эти записи эквивалентны. Вместо { можно написать ??< , вместо } использовать ??>


Остальные триграфы можно найти в статье Елены Сагалаевой "Триграфы и альтернативные символы" на её персональном блоге. Кстати, очень рекомендую сам блог - отличное чтиво на темы связанные с программированием.
Комментировать
6 апреля 2006 20:00

[Без заголовка]

Звездонос (28.35КБ)

Почему звездоноса назвали звездоносом, объяснять не надо. Взгляните на рыльце этого необычного представителя семейства кротовых, обрамленное розовыми "лучами". Оно действительно похоже на звездочку, особенно когда все 22 мягких гладких лучика неподвижны. Но такое со звездоносом случается редко - зверек очень энергичен. Полезет в норку или нырнет под воду, лучики задвигаются и помогут ему схватить добычу, отбросить в сторону комья земли, раздвинуть густые заросли водорослей. Но подсмотреть такой момент очень трудно - зверьки не любят, когда за ними наблюдают.


(Цитата с сайта "Зооклуб") Наверное, увидев такое, можно довольно сильно испугаться.
Комментировать
6 апреля 2006 20:00

[Без заголовка]

Читаю статью "Стрессы многозадачной работы: как с ними бороться":

Специально проведенные исследования показали, что на экранах с диагональю 44 дюймов производительность работы офисного сотрудника повышается в среднем на 10%, а в некоторых случаях - на 44%, по сравнению со стандартным 15-дюймовым монитором.


Давно замеченная мною проблема, именно поэтому два сотрудника нашей компании, от которых требуется максимальное быстродействие работают с большой поверхностью. У моего делового партнёра на столе 23" Apple Cinema HD Display (1920x1200), у меня - два LG L1751SQ (2560x1024). Работать на таких площадях заметно удобнее, но и тут часто, бывает, ошушаешь тесноту, когда пытаешься разместить два деловых письма, смету, типовые документы и т.п. на одном экране.

Использование нескольких компьютерных мониторов способно решить множество проблем с кратковременной памятью и многозадачностью. Любой, кто работает с несколькими мониторами, подтвердит вам это. Увеличение диагонали монитора тоже снимает часть ментальной нагрузки, повышая производительность труда. Но, конечно же, этого явно недостаточно.
Комментировать
21 ноября 2005 21:00

[Без заголовка]

Появился плагин к Miranda, поддерживающий протокол Mail.ru. Пока, естественно, бета-версия. Протокол не взломан, всё дело в том, что Mail.ru опубликовали свой протокол в открытом доступе.
Комментировать
21 ноября 2005 21:00

[Без заголовка]

Когда-то очень давно, когда гаджетомания во мне только-только поднимала голову, выпросил я у родителей советский карманный компьютер. "Электроника МК85", если не ошибаюсь. Это такой большой калькулятор, с небольшим графическим экраном и встроенным диалектом бейсика. Первый PDA, фактически.

Я из этой машинки выжимал всё что можно, а первым моим развлечением был тотализатор - по экрану ползли точки, которые обозначали лошадей, в конце выводился номер победившей "лошади". Неизбалованные "пентиумами" одногрупники (дело было, примерно, в году 1993-94), живо освоили тотализатор...

Вот, когда я узнал, что знания - сила. На тотализатор ставились деньги, а в программе была секретная комбинация, позволявшая указать какой из лошадей придти к финишу...
Комментировать
21 ноября 2005 21:00

[Без заголовка]

Для тех, кто следит за игровой индустрией, это, понятно, анекдот с бородой, но многие все ещё не видели - бета версия игры .kkrieger. Эта трёхмерная бродилка с разнообразным оружием и монстрами, с относительно большой и сложной местностью занимает... 96 килобайт. Ещё раз - килобайт, т.е. где-то 98000 байт.

За столь скромный размер приходится платить - игра требует Pentium III (или Athlon) 1.5GHz или быстрее, 512 мегабайт памяти (которую занимает целиком), GeForce4Ti (или лучше) или Radeon8500 (или лучше).

Вся графика, использованная в игре генерируется в процессе загрузки, которая даже на Athlon 64 3GHz занимает весьма существенное время - несколько минут.

kkrieger (48.46КБ)
Комментировать
21 ноября 2005 21:00

[Без заголовка]

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

Хотелось бы знать что у них получится. Интересно так же, что в качестве языка программирования были выбраны C# и Sing#.
Комментировать
21 ноября 2005 21:00

[Без заголовка]

WebForms-2 (8.91КБ)

Лично для меня событие недели - появление Opera 9.0 Technology Preview 1. Помимо поддержки XSLT, появления аналога настроек FireFox, только сделанных для человека, а не робота, поддержки Canvas, некоторых селекторов CSS3 и прочего, несомненный интерес представляет поддержка стандарта WebForms 2 - обратносовместимого расширения HTML для разработки различных интерфесов ввода. В частности, картинка на скриншоте делается одним-единственным тегом:

<input type="datetime" step="120" name="start">

и это далеко не самая впечататляющая демострация - просмотрите стандарт, хотя бы по диагонали. Жаль, что это всё удасться использовать не ранее чем лет через пять, прежде всего из-за абсолютного главенства Internet Explorer, уверен, что Gecko/Safari подтянутся, а вот от Microsoft такой резвости ожидать не приходится.
Комментировать
21 октября 2005 20:00

[Без заголовка]

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

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

Модуль к PHP написан в формате PEAR, т.е. его можно либо использовать непосредственно, либо исталлировать в составе PEAR.

Нельзя сказать, что я компилятор проводит глубокую оптимизацию, но, например, код "[->+>++<<][>+>[-]<<-][>+<[-]]" будет преобразован в
$in = array(0, $id = 0);
$d = array_fill(-65535, 65535, $di = 0);

$d[$di+1]+= $d[$di];
$d[$di+2]+= $d[$di]*2;
$d[$di] = 0;

$d[$di+1]+= $d[$di];
if ($d[$di]) $d[$di+2] = 0;
$d[$di] = 0;

$d[$di+1]+= $d[$di];
$d[$di] = 0;
В сам PEAR-репозиторий я его выкладывать не буду - даже по моим меркам это не слишком полезная штука, да и вряд ли за него проголосуют (все модули на PEAR подвергаются процедуре голосования, прежде чем попадут в репозиторий).
Комментировать
21 октября 2005 20:00

[Без заголовка]

В основном на PHP пишут небольшие проекты, поэтому литература кишит примерами "как сделать сайт в три странички". Но, тем не менее, только простыми сайтами дело не ограничивается. Когда приходится делать производительные проекты, существует множество ухищрений и решений, одно из которых - использовать разделяемую память, там где кешировать данные в статические файлы не получается. Различных API для использования разделяемой памяти много, только в одном PHP есть shmop, shm_* и Memcache, что несколько осложняет дело.

Я сделал PEAR-класс System::SharedMemory для работы с разными видами разделяемой памяти, получить его можно у меня или на сайте PEAR.

В настоящий момент поддерживаются следующие API:
Комментировать
21 октября 2005 20:00

[Без заголовка]

RegExp Coach sample (12.55КБ)

Увидел у Cooler'a ссылку на замечательную программу - The Regex Coach. Есть версия для Linux и Windows. Программа позволяет визуально проверять регулярные выражения - смотреть дерево, замены, совпадения и т.п. Очень рекомендую.
Комментировать
21 октября 2005 20:00

[Без заголовка]

Читаю сообщения на news-сервере, цитата откуда-то, источник не указан. Если дело так и обстоит, то, по всей видимости, множество искуствоведов сидит в луже и даже не подозревает об этом.

И в какой-то момент доффтыкался я до прозрения. Смотрю я на ЧК из какой-то нащупанной точки, и вижу - а квадрат-то нифига и не чёрный! уппс!

Я ближе, почти вплотную - и действительно, через трещинки на черной полупрозрачной эмали, которой "залит" квадрат, просматриваются... цвета!

Так что, на самом деле, ЧК - это такая забавная композиция из разноцветных геометрических фигур (квадраты, прямоугольники ярких цветов), покрытая чёрной полупрозрачной эмалью в несколько слоёв. В результате Малевич получил эффект картины, написанной оттенками черного.

А вся пурга, кою об ЧК несут все кому не лень все эти годы - гроша выеденного не стоит. В частности потому, что полиграфия (репродукции) эту игру тонов передать технически не в состоянии.

На следующем этаже тогда же была выставка советского искусства 20-х годов, и там я узрел небольшую работу Александра Родченко, коего уважаю безмерно (больше известен как фотограф). Работа не фото, а картинка писаная такая. И что вы думаете? она тоже была написана оттенками черного! но там это видно сразу, черные тона разных оттенков.

Тут я вспомнил, что в читанной мною когда-то до дыр биографической книге о Родченко говорилось и о том, что в поиске новых стёбных приколов способов самовыражения эти ребята прикалывались над внешней парадоксальностью мысли о том, что чёрный - это не один тупо чёрный типа "не-цвет", как принято было считать тогда, и что оттенками черного можно работать.

Значит, и Малевич в 1915 году думал эту же думку и вот так красиво поигрался ;) стёб получился жуткий, никто нифига не вкурил, и всяка разна богэма уже 90 лет типа наумняке ффтыкает в сторону ЧК, не видя сути и не удосуживаясь рассмотреть оригинал.


В этой связи вспоминается "Рождение мастера" Андре Моруа ("а вы видели как течёт река?"), хотя ситуация там несколько иная, но общая идея та же.
Комментировать
12 сентября 2005 20:00