Июль 30 2008

Решение проблемы AutoRun-вирусов (отключение autorun.inf)

Категория: Lifehack, Безопасностьgugglegum @ 11:49

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

Можно использовать антивирус, но антивирус должен быть резидентный. Резидентные антивирусы, во-первых, значительно замедляют работу компьютеров, поэтому многие люди (например, я) не используют их. Во-вторых, стоят денег. В-третьих, антивирус защищает только от тех вирусов, которые он смог распознать.

Я считаю для себя избыточным использование резидентных антивирусов, т.к. лучшая защита — это голова, которая понимает как работают вирусы и, исходя из этого, соблюдает элементарные правила, не допускающие проникновение вирусов.

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

Трагедия заключается в том, что в Windows XP по умолчанию запрет автозапуска для съемных дисков не установлен, и благодаря этому вирусы типа Autorun получили огромную распространенность. В версиях Windows 2000 и 2003 заразить Autorun-вирусом можно по сути только через CD, но через CD много людей не заразишь, да и сам CD заразить довольно сложно, а флешки — просто идеальный вариант. Поэтому, если у Вас Windows XP, и Вы ничего специально не настраивали, то Вы рискуете заразить свой компьютер, вставляя очередную флешку Вашего лучшего друга, и начать заражать после этого других своих друзей. Далее я расскажу про 2 способа защититы от этого. Продолжить чтение “Решение проблемы AutoRun-вирусов (отключение autorun.inf)”


Июль 13 2008

Битва с насекомыми

Категория: Lifehackgugglegum @ 04:28

Моя квартира сегодня подверглась нашествию разного рода летающих насекомых, которым я даже не знаю названия. От мелких мошек с мохнатыми усиками до каких-то то ли мух, то ли мотыльков. На дворе ночь, а у меня в комнате свет горит, да еще и окна открыты, т.к. жара неимоверная, даже ночью — вот они и слетелись. Кондиционера нет, а без вентилятора возможно быть не больше 2-х минут. Этих мелких тварей не остановило даже то, что я живу на 22-ом этаже. И все ради того, чтобы сидеть у меня на потолке вокруг лампы как стадо пасущихся коров.

Подняв как-то голову вверх, я увидел десятки (или даже сотни) этих тварей на потолке, на обоях, остальные мельтешили у меня перед монитором и вблизи настольной лампы. Первая мысль была такая: “Йопт, их ведь и не раздавишь — потолок жалко”. Фумитокс на этих тварей как-то особо не подействовал и на ум пришла гениальная идея — собирать эту шушеру пылесосом. Получилось весьма эффектно — эти тупицы даже не думают улетать, когда к ним подносишь трубу пылесоса, а сидят до последнего. Обратно из пылесоса им уже нет дороги — они смешиваются с пылью и разбиваются о стенки.

P.S. Для лучшего вхождения в роль рекомендую засасывать насекомых в “ловушку” под музыку из фильма “Охотники за приведениями” (”Ghostbusters”).


Июль 10 2008

Куки не работают с локальными доменами

Категория: PHPgugglegum @ 04:24

Вот такое вот открытие сделал я для себя сегодня. Я потратил кучу времени, пытаясь понять почему при открытии страницы на локальном сайте с коротким доменным именем, прописанным в локальных хостах, например, “mysite” (или “localhost” — неважно) куки просто отказывались устанавливаться, если я явным образом указывал в параметрах setcookie домен. То есть вот так работает:

setcookie('Session', '123456', 0, '/');

А вот так уже не работает:

setcookie('Session', '123456', 0, '/', 'localhost');

Решение было найдено, хотя и не сразу. А все дело в спецификации Cookie:

Only hosts within the specified domain can set a cookie for a domain and domains must have at least two (2) or three (3) periods in them to prevent domains of the form: “.com”, “.edu”, and “va.us”. Any domain that fails within one of the seven special top level domains listed below only require two periods. Any other domain requires at least three. The seven special top level domains are: “COM”, “EDU”, “NET”, “ORG”, “GOV”, “MIL”, and “INT”.

Здесь сказано, что куку могут устанавливать только хосты внутри указанного в куке домена, причем домен должен содержать по меньшей мере 2 или 3 точки для предотвращения установки кук, соответствующих доменам верхнего уровня таким как .com, .edu и т.п. И далее утверждается, что для семи специально перечисленных доменов верхнего уровня допустимо 2 точки в адресе, для всех остальных — 3.

На сколько я понимаю, одна из этих точек подразумевается в начале каждого домена, т.е. вместо “mydomain.com” имеем в виду “.mydomain.com”. Однако, совершенно не понятно как быть с национальными доменами типа нашего .ru, которые совсем не обязаны иметь 2 поддомена над верхним. На практике это правило естественно не выполняется ни в одном браузере и браузеры просто требуют, чтобы в домене была хотя бы одна точка не в начале.

Есть еще один момент. Браузер Mozilla Firefox 3.0 почему-то не любит домены на базе .local, т.е. сохранять куки для домена anything.local он почему-то отказывается, хотя для .loc, .loca, localh, localhost и других — сохраняет прекрасно. Другие браузеры и даже сам Firefox, но второй версии такой особенностью не обладают.

Кстати, Opera (9.5) прекрасно сохраняет куки для всех доменов в том числе и без точки, например, localhost. Баг это или фича? На мой взгляд фича, т.к. реальных сайтов с именем “com”, “ru” и т.п. быть не может. Правда, если Вы в локальных хостах создадите домен с таким именем, то конфликт может быть. Не проверял…


Март 05 2008

Перехват обращения к несуществующим свойствам объектов в PHP5

Категория: PHPgugglegum @ 18:52

В строгих языках программирования типа C++ и Java программист обязан явно определять какими свойствами обладает тот или иной класс, причем явно указывая их области видимости (public, protected или private). В PHP4 такой строгости не было и в некоторых случаях это приводило к ошибкам, которые достаточно трудно отловить.

В PHP5 у свойств классов появились области видимости и все стало более-менее строго. Обращение к несуществующему статическому свойству класса

<?php

class A { }

A::$myVar = 'test';

?>

приводит к фатальной ошибке: “Fatal error: Access to undeclared static property: A::$myVar in C:\test.php on line 7″. Однако, для совместимости с PHP4 при обращении к свойству объекта никаких ошибок не генерируется. Продолжить чтение “Перехват обращения к несуществующим свойствам объектов в PHP5″


Март 05 2008

Нюансы автоматической загрузки классов в PHP с использованием __autoload()

Категория: PHPgugglegum @ 18:25

(данный пост был в последствии изменен, см. примечание в конце)

Как известно, в PHP, начиная с 5-ой версии, появилась замечательная возможность загружать классы автоматически по мере возникновения в них необходимости. Теперь, вместо того, чтобы писать в файле каждого класса список используемых файлов классов, достаточно где-нибудь в файле инициализации объявить функцию с именем __autoload(), которая получает в качестве параметра имя требуемого класса и пытается его загрузить. Эта функция — своего рода последний рубеж перед возникновением ошибки “Fatal Error”.

У данного метода есть два преимущества:

  1. Не нужно отслеживать где и какие классы мы используем. Ведь ошибиться здесь очень легко. Например, в одном классе мы используем другой класс, который уже был использован и загружен ранее, и который мы забыли явно объявить через require_once. Скрипт работает нормально, т.к. класс загружен. Но вот мы начали вызывать этот класс из другого места и там требуемый класс еще не был загружен — возникнет фатальная ошибка. Если необходимость в этом классе возникает не постоянно, а лишь в некоторых редких ситуациях (например, при обработке исключений), то отловить это будет крайне сложно.
  2. Нет избыточных вызовов require_once. Ведь если файл с классом загружен, то нет смысла вызывать каждый раз в каждом классе require_once одних и тех же файлов классов.

Однако, есть у данного метода и недостатки. Продолжить чтение “Нюансы автоматической загрузки классов в PHP с использованием __autoload()”


Март 04 2008

Goodbye, privacy!

Категория: Безопасностьgugglegum @ 20:24

Не болтай!Не успели отгреметь выборы, как широкой общественности стал доступен приказ №6 от минсвязи РФ, который обязывает всех операторов связи предоставлять ФСБ-шникам техническую возможность без всякого ведома и согласия оператора получать доступ к любой пересылаемой информации пользователей (телефонные звонки, SMS, электронная почта, ICQ, вобщем все, что не имеет встроенного механизма шифрования на концах), к данным об оказанных услугах (детализация звонков, выставленные счета), и к информации о местоположении абонента при совершении звонков с сотового.

Собственно, все это было и раньше, но не было официального закона. ФСБ-шники могли придти к оператору (провайдеру) и потребовать какие-нибудь логи. Оператор им эти логи обычно давал. Но в этом случае оператор хотя бы знал, что ФСБ-шникам понадобилась информация и какая именно. Кроме этого, провайдер теоретически мог отказать или сослаться на отсутствие технической возможности… А теперь не только не может, но и не знает когда и какую информацию получают ФСБ-шники. При этом ФСБ-шникам для этого не нужно даже отрывать свой зад от кресла.

Какие выводы из этого можно сделать? Продолжить чтение “Goodbye, privacy!”


Март 04 2008

Выборы, выборы — кандидаты пи-пи-пи…

Категория: Uncategorizedgugglegum @ 20:07

Впервые за всю свою жизнь столкнулся со случаем, когда выборы в нашей стране просто безальтернативные. Избирателей лишили двух важнейших рычагов управления выборами: убрали пункт “против всех” и отменили процент явки, при которой выборы считаются действительными. Теперь кого людям предложили — того и будем мы иметь (а если быть честнее, то “тот и будет иметь нас”) последующие 4 года.

Мне реально ни один кандидат не нравился. Медведев не нравился по тому, как проводилась его рекламная кампания — еще за несколько месяцев до выборов о нем повсеместно говорилось как о будущем президенте. В интернете на многих новостных сайтах часто можно было встретить заголовки вида “Будущий президент России Медведев Д.А. …”. Мне любопытно, новостным сайтам кто-то доплачивал за такие оговорки или это повсеместная неполиткорректность СМИ? Продолжить чтение “Выборы, выборы — кандидаты пи-пи-пи…”


Ноя 10 2007

Тест для PHP-программистов от mamba

Категория: PHPgugglegum @ 02:14

Зашел только что на сайт знакомств mamba.ru после длительного перерыва, а у меня там, как водится, очередной спам от администрации сервиса. На сей раз они сообщают, что ищут PHP-программиста и даже готовы заплатить мне 500 баксов, если среди моих знакомых таковой найдется и он перейдет к ним работать.

– Хе-хе, — думаю я про себя, — да я и сам, знаете ли… :)
Продолжить чтение “Тест для PHP-программистов от mamba”


Сен 13 2007

Вся правда о Web 2.0

Категория: Web 2.0gugglegum @ 15:51

Довольно часто приходится сталкиваться с людьми, которые с гордостью заявляют, что они, мягко говоря, НЕ фанаты Web 2.0. Должен признать, большинство из таких людей достаточно умные и грамотные люди, способные, в отличии от большинства, выносить собственные суждения о тех или иных вещах, а не полагаться всецело на мнение масс и распространенные клише.

Эти люди просто обратили внимание на всеобщее помешательство Интернет-сообщества на том, что никто толком и объяснить-то не может. Они видят в этом просто напросто способ брать с клиентов больше денег и дурить головы венчурным инвесторам. Они пытаются одернуть “бегущих” за вебом 2.0 людей за рукав и объяснить, что те бегут непонятно за чем… Но, если копнуть глубже, то станет ясно, что одергивать их не надо — пускай бегут… :)

Правда в том, что само явление Web 2.0 появилось задолго до того, как Тим О’Релли придумал для него это название. Тим просто проанализировал множество новых популярных сайтов, выявил в них общие характерные особенности, которые составляли их формулу успеха, и придумал всему этому звучное название. Веб 2.0 — это просто новая (хотя уже не такая уж и новая) волна в интернете, своего рода мода в веб-индустрии. И как любая мода, она обречена постоянно меняться. Поэтому следует ожидать что эпоха веб 2.0 не будет вечной и на смену ей когда-нибудь придет что-то другое (Web 3.0? Хи-хи).

Однако, Тим сослужил хорошую службу всем нам: и веб-разработчикам, и простым пользователям Интернета тем, что создал такую шумиху вокруг всего этого. Венчурные инвесторы действительно ведутся на термин “Web 2.0″ и это хорошо — у веб-разработчиков есть работа, а у пользователей Интернета есть сайты, на которых они проводят все свободное время, создавая UGC (User-generated Content), да и сами венчурные инвесторы зачастую в накладе не остаются. Без этой шумихи развитие Интернета просто напросто шло бы не такими стремительными темпами и по более кривым траекториям.

Так что лично я предлагаю оставить все как есть и продолжать дурить голову венчурным инвесторам. :-D


Сен 07 2007

Постраничная листалка

Категория: Юзабилитиgugglegum @ 21:26

С давних пор меня интересует вопрос проектирования казалось бы такого простого элемента интерфейса как “постраничная листалка” (она же “блок постраничной навигации”). Постраничная листалка, пожалуй, один из самых древних интерфейсных элементов веба, она применяется в случаях когда кол-во информации (например, элементов списка) слишком велико для отображения на одной веб-странице и в ее задачи входит быстрое переключение пользователя между страницами, на которые была разбита эта информация.

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

Продолжить чтение “Постраничная листалка”


« Предыдущая страницаСледующая страница »