Mysql.com взломан и продан за 3000$

Видео, демонстрирующее как пользователи заражаются:

Во время загрузки страницы с mysql.com клиент получает эксплойт на свою рабочую станцию.

Более подробно об написано на хабрахабр.ру

Вскрытие Route в MVC/HMVC (часть 1: обзор)

В настоящий момент в области проектирования web-приложений паттерн MVC стал не только у всех на слуху, но более того он используется в популярных framework и cms, а также получил свое развитие в виде HMVC паттерна, что очень хорошо представлено у framework kohana.

Routing (роутинг) – это определенный процесс в web-приложение, осуществляющий прием запроса, его анализ и перенаправление результата анализа дальше в систему.  Давайте же рассмотрим реализацию роутинга в связке apache и php, на примере известных framework, такие как CodeIgniter и Kohana. Архитектура этих двух framework выглядит схематично следующим образом:

Поскольку framework Kohana является потомком CodeIgniter, детальные схемы могут отличаться

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

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

Читать далее »

Кэширующий Resize Image по запросу для node.js

Столкнулся со следующей задачей:

Нужно по определенному GET-запросу отдавать изображение. При этом в запросе также указано разрешение картинки, которое требуется. Т.е. нужно изменить размеры изображения и отдать клиенту. И все это естественно на node.js.
Читать далее »

Случайная выборка в SQL

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

Например, хабрахабр.ru развели споры по этому поводу, какое решение лучшее, так и не придя к окончательному мнению. Давайте разбираться.

Существуют по крайней мере два пути решения и вариации в каждом:

  • Средствами СУБД. Например использование функции RAND() в SQL запросе или подобной в зависимости от используемой СУБД.
  • Средствами приложения. Например, выборка идентификаторов записей в таблице, формирование массива идентификаторов из полученной выборки средствами приложения и дальнейшая выборка идентификатора из сформированного массива.

Читать далее »

Установка node.JS, npm, pgSQL, express.js на Ubuntu для приложения

Сравнительно молодая технология node.js благодаря своей гибкости, производительности и простоте набирает популярность в мире.

В этой статье, я опишу как установить все необходимое для разработки приложений, а в дальнейшем мной будет написан цикл статей по созданию несложного сайта с использованием node.js.

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

Читать далее »

Глобальная рекурсивная фильтрация на php

php кодПри обработке данных на php бывают ситуации, когда необходима фильтрация входных данных, которые после некого форматирования могут фигурировать в SQL-запросах или в html-представление страницы.

В интерпретаторе PHP уже существует набор стандартных функций для решения этой задачи: strip_tags()htmlspecialchars()mysql_escape_string()stripslashes() и т.д.

Но этого недостаточно, поскольку возникают случаи, когда разработчик забывает об использовании фильтрации при большом числе переменных или упускает те или иные правила обработки.

Необходимость фильтрации в первую очередь связана с безопасностью.

Слабая, недостаточная фильтрация или её отсутствие выражается в наличии уязвимостей, например, таких как XSS, SQL-injection, PHP-including и другие, в зависимости от реализации.

И так ближе к делу — идея глобального рекурсивного фильтра реализуется в виде двух взаимосвязанных функций

Читать далее »