Search
Write a publication
Pull to refresh
17
0
Ilia Agafonov @Tairesh

Backend Developer

Send message

Ваш сайт тоже позволяет заливать всё подряд?

Reading time4 min
Views52K
Один французский «исследователь безопасности» этим летом опубликовал невиданно много найденных им уязвимостей типа arbitrary file upload в разных «написанных на коленке», но популярных CMS и плагинах к ним. Удивительно, как беспечны бывают создатели и администраторы небольших форумов, блогов и интернет-магазинчиков. Как правило, в каталоге, куда загружаются аватары, резюме, смайлики и прочие ресурсы, которые пользователь может загружать на сайт — разрешено выполнение кода PHP; а значит, загрузка PHP-скрипта под видом картинки позволит злоумышленнику выполнять на сервере произвольный код.

Выполнение кода с правами apache — это, конечно, не полный контроль над сервером, но не стоит недооценивать открывающиеся злоумышленнику возможности: он получает полный доступ ко всем скриптам и конфигурационным файлам сайта и через них — к используемым БД; он может рассылать от вашего имени спам, захостить у вас какой-нибудь незаконный контент, тем подставив вас под абузы; может, найдя параметры привязки к платёжной системе, отрефандить все заказы и оставить вас без дохода за весь последний месяц. Обидно, правда?

Как ему это удастся?

Koding.com — localhost в облаке

Reading time2 min
Views21K
С удивлением не обнаружил на хабре ни одной статьи о проекте Koding.com. Сразу скажу, что не имею никакого отношения к администрации сайта, но порекламировать его всё равно хочу, потому что, на мой взгляд, он этого заслуживает.

Koding.com — полноценная бесплатная среда разработки в браузере и социальная сеть для разработчиков в одном флаконе. В данный момент проект находится в стадии public beta и многие функции ещё недоступны, но уже сейчас понятно, что будет интересно.

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

Играть в Spelunky можно в браузере

Reading time1 min
Views6.4K


Вы закончили работать сегодня? Вы уверены? Хорошо, если у вас есть пара свободных часов нажмите сюда. Вы играете в Spelunky в браузере и ваша продуктивность теперь на нуле.

Этот порт был создан Darius Kazemi из Tiny Subversions. Он отметил что HTML5 версия Spelunky стала возможной благодаря Gamemaker HTML5 (сейчас GameMaker Studio), который позволяет скомпилировать игры, созданные в GameMaker в JavaScript. На текущий момент отсутствует звук и добавлены хаки для повышения стабильности, а еще увеличена задержка перед бегом после нажатия X по сравнению с оригиналом — прим. пер.

И по итогу Spelunky все еще увлекателен, и новая версия позволяет продолжить задротствовать игру в любое время.

Самоисполняемый phar как способ распространения веб-приложений

Reading time3 min
Views8.2K
Как уже, наверное, всем известно, в PHP 5.3 появилась поддержка специального типа архивов с расширением .phar. Те, кто не в курсе — могут почитать отличную статью .phar — исполняемые PHP-архивы
Область применения, которая сразу приходит на ум — это библиотеки/фреймворки в виде подключаемых *.phar архивов и установщики веб-приложений, например, CMS. О последних я и собираюсь рассказать подробнее и с примерами.

Постановка задачи


Цель — получить на выходе один файл, который будет сам по себе исполняемым, и будет содержать в себе все нужные файлы. Если провести аналогию c обычными приложениями — это приложение, которое запаковано в SFX (self-extracting archive).
Читать дальше →

Leaflet 0.4 — новая версия открытой JS-библиотеки для интерактивных карт

Reading time7 min
Views17K


После пяти с половиной месяцев разработки с момента выхода предыдущей версии, очень рад наконец представить вам Leaflet 0.4 — новую версию легковесной JavaScript-библиотеки для интерактивных карт, которая одинаково хорошо работает и на десктопных браузерах, и на мобильных устройствах.

Этот релиз, к которому приложило руку 33 разработчика, несёт в себе более простой, удобный API и громадное множество улучшений и исправлений вместе с масштабным обновлением документации, запуском официального блога и страничкой плагинов. Давайте рассмотрим улучшения по порядку.
Читать дальше →

Unity3d. Уроки от Unity 3D Student (B00-B03)

Reading time5 min
Views246K
Добрый день. Предлагаю свой вариант перевода уроков по Unity3d от www.unity3dstudent.com

Введение.


Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.

PS: А хорошо это или плохо — вопрос достаточно сложный.

В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.

Перейти к урокам

Пошаговая стратегия как хобби

Reading time5 min
Views38K


Привет, хабралюди! Кто из вас не мечтал создать свою игру? А возможно ли написать браузерную стратегию, не имея при этом опыта и денег? Возможно, если очень этого хотеть.

Под катом моя история создания бесплатной пошаговой стратегии.

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

Unity 3d Tank Tutorial: Ходовая часть (Урок 2. Гусеничное шасси)

Reading time19 min
Views82K
Урок 1 <<

image

Вступление


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

А именно: я расскажу о том как лучше смоделировать гусеничное шасси в 3d редакторе для того чтобы оно могло адекватно двигаться и реагировать на неровности ландшафта, также дам вам готовую модель которую вы можете видеть в демо, затем вы узнаете как все это дело оживить и привести в движение с помощью Wheel Collider’ов.
Читать дальше →

Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)

Reading time12 min
Views152K
image

Вступление


Итак вы уже не новички в Unity, вы умеете создавать сцену, расставлять объекты на сцене, создавать terrain, делать префабы и тд… и главное — работать со скриптами, либо вы уже изучили статьи: Unity3D для начинающих — Туториал 1 и Unity3d script basics. Все эти знания вам пригодятся ведь в этом уроке мы двинемся намного дальше.

А именно: в первой части этого урока вы узнаете что такое Wheel Collider, как с помощью него управлять транспортным средством и создать реалистичное поведение подвески автомобиля, во второй части урока, на основе всего этого я покажу как сделать ходовую часть танка с соответствующей физикой и контроллерами.

Собственно то что вы видите на изображении сверху (это будет результат данного урока) вы можете опробовать «вживую» прямо в браузере. Хотите сделать это сами? Тогда добро пожаловать под кат
Читать дальше →

Unity3d script basics

Reading time13 min
Views111K


Предисловие


Эта статья будет посвящена новичкам в скриптовании Unity, но не совсем новичкам в синтаксисе JavaScript’а или любого другого подобного языка программирования. Тут надо маленько уточнить что JavaScript который использует Unity немного отличается от оригинального в пользу улучшенной поддержки ООП и называется соответственно Unity JavaScript. В нем например появились классы и их наследование, о чем не знают начинающие разработчики на Unity знакомые с объектно ориентированными возможностями оригинального JavaScript, поэтому отвергают его используя C# или Boo.
Читать дальше →

Погружение в скрипты игрового движка Unity3d, ч.2

Reading time4 min
Views131K
Доброго времени суток всем читателям! Не так давно мною была опубликована статья, охватывающая некоторые часто используемые скриптовые возможности движка Unity3d. В этой части я хотел бы написать о скриптовых событиях, вызываемых при различных условиях. Все, указанные в данной части справочника, функции доступны в любом скрипте, который «повешен» на игровой объект.

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

Погружение в скрипты игрового движка Unity3d, ч.1

Reading time6 min
Views237K
Доброго времени суток, уважаемый читатель! На Хабре неоднократно публиковались статьи о разработке игр с использованием замечательного движка Unity3d. Большинство этих статей были посвящены вполне определенным задачам, я же хотел сделать общий экскурс в данный движок. Данная часть будет посвящена наиболее часто используемым скриптовым методам и объектам, которые используются мной в процессе разработки на данном движке. Примеры я буду приводить на JavaScript, как на наиболее близком мне языке.
Читать дальше →

Костыльный программист

Reading time5 min
Views50K
Автор: Джоэль Спольски. Оригинал.

Статья посвящена оверинженирингу и тем, кто предпочитает старые костыльные решения лишь потому, что они очень просты. Перевод под катом.
Читать дальше →

Как создать простую Tower Defense игру на Unity3D, часть первая

Reading time16 min
Views128K
Здравствуйте! Давно уже хотел опубликовать эту статью, да не успевал выделить время. Заранее хотел бы предупредить, что статья рассчитана на не шибко знающего Unity3D пользователя, потому в тексте будет обилие пояснений.

Часть вторая

Всем заинтересовавшимся — добро пожаловать под кат!
Читать дальше →

Unity3d. Уроки от Unity 3D Student (B04-B08)

Reading time7 min
Views137K
Добрый день.

Предыдущие уроки вы можете найти в соответствующем топике.

Теперь в каждом посте в скобках (в конце) будут указываться номера уроков. Буква в начале номера обозначает раздел (B-Beginner, I — Intermediate).

PS: Если вы не проходили предыдущие уроки, очень рекомендую их пройти, т.к. последующие изредка на них ссылаются.

Перейти к урокам

Что нам стоит фильм «построить»?

Reading time2 min
Views1.3K

Преамбула


В процессе работы, анализировал лог, который представлял из себя print_r массива (очень большого массива).
Крутить ролик, пальцы устали. Решил воспользоваться «ускоренным» скроллингом… и…

Кинематограф


Так как массив был многомерным и его второй уровень имел статичное количество элементов, я увидел «кино».
Это были мелькающие значения массива, которые складывались в кадры. Небольшие операции по регулировке скорости прокрутки, и кадры зафиксировались.
Читать дальше →

F3: маленький PHP-фреймворк с огромными возможностями

Reading time7 min
Views27K


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

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →

Aleph PHP Framework

Reading time6 min
Views5.1K

Итак, встречайте Aleph!


Новый микро-фрэймворк на PHP, по размеру и функционалу, которого уместно сравнение разве что только с медицинским скальпелем.

По умолчанию содержит всё необходимое для быстрого старта и написания приложений.

Причины, почему стоит обратить на него внимание:
  • Фрэймворк реально маленький. Обильно сдобренный phpDoc комментариями код занимает около 3000 строк;
  • Фреймворк является результатом более чем 6-ти летней профессиональной деятельности его авторов в области web-разработок;
  • Возможности фрэймворка позволяют использовать его как базу под практически любое приложение.

Причём Aleph — это пока что только ядро полноценного фреймворка, уже готового и давно используемого в реальных web-приложениях. Публикация остальных частей системы не за горами — вы просто влюбитесь в возможность проектировать и реализовывать приложения так, как если бы вы делали это в десктопном программировании (не надо пытаться представить это прям сейчас и тут же критиковать, дождитесь пока не увидите это своими глазами, и поймёте, что я имел в виду). Есть и ORM, и система контролов (именно контролов, типа тех, что в ASP.Net), валидаторы, кэширование, шаблонизация и всё то, что делает набор вспомогательных библиотек фреймворком.
Читать дальше →

Архитектура CMS. Модель данных. Часть 3

Reading time10 min
Views2.2K
В предыдущей статье на примере создания объектной модели простого сайта производились одиночные загрузки сущностей из базы данных по их идентификаторам конструкцией Object::Create($id), при этом мы знали, у какой сущности (чаще всего класса), какой идентификатор, так как сами создавали эти сущности и в крайнем случаи могли просто заглянуть в базу данных. На практике загружать сущности по идентификатору проблематично, если нас интересуют сущности, о существовании которых можно только догадываться, то есть, не имея информации об их идентификаторах. Более того существует необходимость загружать несколько сущностей разом, отвечающих некоторым условиям.

В магазине, например, мы не выбираем товар по его серийному номеру или штрих-коду, не зная при этом, что он означает – мы смотрим на свойства товара интересующие нас. На главной странице сайта, опять же для примера, необходимо выводить последние новости, что сводится к выборке из базы данных (объектной модели данных) 10 объектов класса «Новость» с сортировкой по дате их создания. Для осуществления подобных запросов необходим гибкий способ описания условий выборки сущностей – условий поиска с учетом особенностей объектной модели. На основе условия необходимо создавать SQL код для непосредственной выборки из БД идентификаторов сущностей удовлетворяющих условию, имеем идентификаторы – имеем сущности.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
From 4,000 €
Docker
SQL
Linux
PostgreSQL
Git
MySQL
PHP
Yii framework
Symfony
RabbitMQ