Сегодня я расскажу о еще одной своей уязвимости в PHP сценарии. Если тебе интересно учится на чужих ошибках, то это тебе поможет. Вчера я зашел в админку сайта HackishCode и увидел там комментарий от пользователя, который был сохранен со статусом 1, при этом имя пользователя отсутствовало. Меня это очень сильно испугало, потому что со статусом 1 можно сохранить комментарий только если его подтвердил я лично или если его оставил зарегестрированный пользователь. Неужели кто-то зарегистрировался с пустым именем, и будет мусорить? Лезу в базу и выясняю, что нет такого человека. Явно где-то уязвимость, которой воспользовались нарочно или случайно и нужно пускаться в поиски!
Пробую оставить комментарий к первой попавшейся новости от не зарегистрированного пользователя, но он, как и положено, попадает в базу со статусом 0 и не отображается. Смотрю еще раз на базу и выясняю, что испорченный комментарий оказался в разделе исходников. Смотрю в код исходников а там защита идентична, как и в новостях. Логика сохранения проста и ошибиться сложно:
Я делаю форум на Hackish Code и пишу wysiwyg редактор. Форум будет работать только после регистрации, но сейчас он еще не работает и ничего не сохраняет в базе, поэтому форму создания топика я сделал доступной уже сейчас: форма форума на hackish code. Кому интересно и есть время, просьба протестить и оставить свои замечания
У меня есть только FireFox 3, IE 6/7 и Safari. Лучше всего форма работает в FireFox 3. В IE чуть хуже, потому что для набора кода приходиться дважды щелкать по полю для него. В Safari вообще форма отказалась работать. Оперы у меня нет, поэтому не могу ничего сказать. Если у кого она есть и может протестить, скажу спасибо.
Похоже, что мой словесный понос подходит к концу. Я реально не знаю, что еще написать. Вроде стараюсь разнообразить сайт, вкладываю старые статьи, рассказываю, что происходит в мире ИТ со своей точки зрения, но вот сегодня реально не о чем писать. Как раз утром прочитал комментарий Сергея о том, что я меняюсь и такие комментарии приходят раз в месяц, но в данном случае Сергей оказался в чем-то правым. Ну нет же, я не изменился. Я просто развиваюсь и расту с вами но изменились темы блога. Сайт развивается, и теперь это уже не только блог, но и сборник статей и рецензии на книги. Информации больше и это же хорошо?
Но все это прекрасно, пока не страдало живое общение. Хотя бы одна заметка в день была просто живая о моем мнении на что-то, а в моем коммуникаторе всегда было как минимум 5 заметок в очереди на публикацию. Вот сейчас прочитал Сергея и полез в коммуникатор, чтобы выложить очередную заметку, а выкладывать нечего. Есть только одна, но ее пока не хочу публиковать, потому что она тронет больную тему линуксоидов.
Может я действительно выговорился и качество заметок уже не то? Да нет, мне кажется все нормально. Я просто меньше стал пинать опенсорс, а что его пинать без толку? Может пнуть его, чтобы снова разгорелись комменты и народ увидел старый Блог с жаркими обсуждениями (спорить и ругаться не дам).
Сегодня я добавил и проставил категории/теги на всех моих сообщениях. Благодаря этим категориям тебе проще будет впоследствии искать заметки этой же категории (тега). Пока что категории только отображаются, но практически больше нигде не используются, но на недельке постараюсь найти время и заставить все это дело работать, в том числе и при поиске по архиву моих сообщений.
Помимо этого на главной странице, под каждым постом теперь показывается количество комментариев по данной заметке. Уже давно кто-то предлагал такое сделать, и вот это чудо свершилось. Ссылка [Читать далее] появляется только тогда, когда есть продолжение заметки. Если все уместилось на главной странице, то этой ссылки не будет.
Самый первый блог, который я начал читать - www.joelonsoftware.com, на котором раньше можно было увидеть много интересного. В последнее время для меня читать там особо нечего, потому что Joel перестал писать о программировании и о Software. Но по привычке я заглядываю на блог, хотя стал замечать, что делаю это лишь для того, чтобы почитать тексты на английском, когда эти тексты не вызывают никакого интереса.
Недавно Joel с друзьями открыли новый сайт www.stackoverflow.com для программистов. Он уже давно писал о разработке сайта и вот он недавно появился. Все время, пока сайт создавался, я не мог понять для чего он и в чем будет изюмина и не понял сейчас. Я не буд выступать критиком сайта и ругать его, потому что никогда не делал этого и не хочу. Не имею привычки ругать или критиковать чужую работу, но не могу не заметить, что я не понял этой работы.
Существует множество различных типов приложений, где используется резиновая прямоугольная рамка для выделения, которая рисуется, пока мы тянем мышкой, удерживая нажатой клавишу. Такое часто можно увидеть в графических приложениях, при выделении областей, при рисовании прямоугольников/кругов или других фигур, а так же при перемещении каких-то объектов или изменении их размеров. Как можно реализовать это в своих приложениях? В этой статье я покажу современный метод.
Для рисования рамки можно использовать старые функции с операциями растеризации, такие как XOR. Растеризация специфична для старого графического интерфейса GDI и отсутствует в новой реализации GDI+. Раньше, мы должны были рисовать прямоугольник, используя включенный режим растеризации ROP2_XORPEN. Чтобы стереть рамку, не нужно перерисовывать всю сцену, достаточно еще раз нарисовать рамку, и она исчезнет.
Компания Apple не просто удивляет, она поражает своими решениями. Ну что можно было еще придумать революционного для наших компьютеров и ноутбуков? Ну вроде бы уже все что можно было придумали, но нет, Apple снова ввела меня в шок. Тут просочилась информация по поводу того, какими будут новые ноутбуки Apple. Конечно же, в них будут использоваться современные компоненты и они будут быстрее, но изменения будут и в дизайне.
Фотка, которая выложена на cnews, не содержит ничего сверхестественного в дизайне коробки ноутбука, но имеет очень интересный TouchPad. Если быть точнее, то этого устройства на новом ноутбуке скорей всего не будет :). А что же мы тогда видим на картинке? А это ни что иное, как сенсорный экран и именно по нему мы будем водить пальцами и кликать. Прикольно? Еще бы. На этом экране будет отображаться Dock, что упростит быстрый доступ к его составляющим. Стив просто не устает меня удивлять, ведь это практически реальный прорыв в эргономике, удобстве и дизайне. Интересно, что на это ответят другие производители ноутбуков на платформе Windows или Linux.
Наиболее сильно недооцененной и не понятой функцией в Windows Vista является User Account Control (UAC). А зря, это очень важная и полезная функция. Долгие годы пользователи были богами в своих системах и работали от имени учетной записи администратора. Так было в Windows 95, 98, ME и даже в 2000 и XP, когда все предупреждают, что это опасно для системы. В конкурирующих системах, например в ОС Linux, запрещено входить в графическую оболочку от имени администратора (root). Если необходимо выполнить действия от имени администратора, пользователь должен переключиться в консоли на учетную запись администратора, но запускать целую оболочку от администратора не нужно.
Компания Microsoft не стала вводить такой категорический запрет ради удобства пользователей и ради большого количества программ, которые могут потребовать выполнения привилегированных операций, но безопасность важнее, поэтому в Windows Vista для нашей защиты была внедрена User Account Control. Не советую ее отключать, ибо это реальная защита, и если какая-то программа не работает корректно с UAC, то это не Windows плохой, это программа не умеет работать в безопасном окружении и я бы не стал работать с такой программой ради собственной безопасности. Такое отношение есть в любой безопасной системе и теперь так есть и скорей всего будет в Windows.
Где-то три года назад меня пригласили на интервью в одну очень перспективную Калифорнийскую компанию - Ask.com. Для тех, кто не в курсе, есть такой поисковик в США, который находится где-то на 4-м месте в рейтинге. Может кто не знает (да наверно точно мало кто знает), но компанией руководят два молодых человека. Не напоминает ли это вам компанию Google? Но еще более интересное, что один из них эмигрант из России. Оооо. Ассоциации становятся еще круче. Он уехал отсюда очень давно, поэтому, во время интервью он говорил с хорошим акцентом и чувствовалось, что с трудом. Вот так вот я лично общался с одним из руководителей Ask.com.
Компания Ask.com набирала штат в России и я их заинтересовал не столько, как программист, а как писатель. Мне сразу же пришлось разочаровать их тем, что английский я знаю не на столько, чтобы писать книги или быть редактором сайта (я так понял, они планировали взять меня редактором сайта), а мои работы переводил профессиональный переводчик. Я английский знал тогда только на уровне понимания базовых вещей, и только после того интервью занялся изучением, потому что понял, что читаю мануалы без проблем, но сам связать два слова не могу, чтобы выразить свою мысль.