Категории: Web разработка

Уязвимости в MySQL и SQL запросах

Владимир | | MySQL, PHP, Web разработка, Безопасность.

Эта заметка – вольный перевод статьи Stefan Esser MySQL and SQL Column Truncation Vulnerabilities.

SQL-инъекции (SQL-injection) на сегодняшний день остаются наиболее обсуждаемыми проблемами безопасности web приложений.

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

Первая уязвимость касается движка MySQL
Читать дальше

Inferno: подключаем сторонние библиотеки к CodeIgniter

Владимир | | CodeIgniter, PHP, Web разработка.

Использовать библиотеки сторонних разработчиков вместе с фреймворком CodeIgniter в большинстве случаев не сложно. Достаточно, чтобы библиотека соответствовала небольшому перечню требований.

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

Избавиться от этой проблемы можно с помощью библиотеки Inferno. Ее предназначение – подключение сторонних библиотек к фреймворку.
Читать дальше

Автоматическая табуляция с помощью jQuery

Владимир | | HTML, JavaScript, Web разработка.

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

В этой статье речь пойдет об инструменте, который позволяет значительно ускорить работу с формами. Называется он Autotab и представляет собой плагин к JavaScript библиотеке jQuery.

Основное назначение плагина – ускорить ввод данных в несколько связанных полей. Например, гораздо удобнее вводить дату в три разных поле (отдельно день, месяц, год). Но при этом пользователю придется переключаться между полями.

Autotab позволяет создать группу связанных полей с фиксированной длиной. При этом после заполнения первого поля курсор автоматически переместится в следующее поле. Точно также работает и удаление символов. Можно зажать клавишу «Del» и все связанные поля будут очищены.

Кроме того, плагин осуществляет фильтрацию вводимых данных.

Установка плагина.
Читать дальше

JSUnit: тестируем JavaScript код

Владимир | | JavaScript, Web разработка.

О фреймворках xUnit слышали все, кто хоть немного занимался тестированием кода. Эта статье об использовании JavaScript версии этого фреймворка.

О пользе тестов написано очень много, и перечислять в очередной раз все преимущества, которые они дают, нет никакого смысла. Поэтому мы просто рассмотрим установку и настройку фреймворка. И, конечно, напишем какой-нибудь тест.
Читать дальше

Open Flash Chart – строим графики

Владимир | | HTML, PHP, Web разработка.

Создание изображений – довольно сложная и трудоемкая задача. Если не использовать специальных библиотек.

Об одной из них я и хочу рассказать.

Open Flash Chart. Уже по названию становится ясно, что:

1) библиотека распространяется с открытыми исходниками и бесплатно;

2) предназначена для создания графиков;

3) использует технологию Flash.

Сразу остановлюсь на третьем пункте. Flash обладает одним недостатком. Если у посетителя не установлен Flash player, то график он не увидит.

Зато достоинств гораздо больше:

1) Интерактивность. При наведении указателя мыши на график появляется подсказка с данными выбранной точки.

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

3) Увеличение скорости загрузки, экономия трафика. Flash ролик грузится только один раз, занимает 63 кБ. При этом график может быть размером с экран браузера.

Но это все теория. Переходим практической части.
Читать дальше

AppJet – платформа для создания web приложений

Владимир | | JavaScript, Web разработка.

Сегодня хочу рассказать об одном очень интересном сервисе – AppJet.

Позиционируется он, насколько я понял, для обучения программированию. Во всяком случае «руководство по программированию для абсолютных новичков» присутствует.

Вообще идея очень интересная.

Чтобы написать обычное web приложение вам нужно знать несколько языков (например, HTML + JavaScript или HTML + PHP, а лучше HTML + CSS + PHP + JavaScript + SQL + библиотеки и фреймворки 😉 ).

Здесь нужны только знания JavaScript. Точнее можно только изучать JavaScript, а для реализации серверной части придется освоить лишь небольшой API.

Проще всего это объяснить на примере. Создадим обычный счетчик количества обращений к странице (код я скопировал из справки).
Читать дальше

Работаем с изображениями на JavaScript: Raphael

Владимир | | JavaScript, Web разработка.

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

Основные возможности: создание графиков (диаграмм), небольших виджетов для обработки картинок, рисования закругленных уголков и т.п.

В качестве базы для создания изображений используются SVG и VML. Каждому объекту, созданному с помощью этой библиотеки, можно назначить обработчик. На данный момент поддерживаются следующие браузеры: Firefox 3.0+, Safari 3.0+, Opera 9.5+ и Internet Explorer 6.0+.

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

Обновляем WordPress с помощью Subversion

Владимир | | Subversion, Web разработка, WordPress.

В этой статье я расскажу о том, как можно немного упростить обновление WordPress. Метод особенно удобен, если вам нужно регулярно тестировать плагины на совместимость с новыми версиями движка.

В общем-то, особых секретов нет. Скачать дистрибутив WordPress можно как в виде zip архива, так и с помощью Subversion.

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

Обычным способом вам бы пришлось качать архив, удалять файлы старой версии (не всегда), распаковывать архив, проверять, что находится в wp-content (там могут быть более ранние версии плагинов).

Т.е. используя Subversion вы однозначно сэкономите время, и кроме того, будете уверены, что никакие ваши файлы не будут случайно перезаписаны.

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

Теперь рассмотрим процесс получения дистрибутива.
Читать дальше

Увеличиваем скорость загрузки web страниц

Владимир | | htaccess, JavaScript, PHP, Web разработка.

Недавно я наткнулся на одну очень интересную тему для WordPressWP-Coda. Выглядит просто шикарно! Но дело не в этом.

Эта тема использует довольно много эффектов, реализованных с помощью JavaScript.

Мне стало интересно, во сколько эта красота обходится посетителям, и оказалось, что не так уж и дорого. Всего один js-файл размером 45кБ.

Дело в том, что автор упаковал семь исходных файлов в один и после этого сжал его упаковщиком вроде Packer JavaScript en PHP.

Но первый же эксперимент показал, что это не предел. Если упаковать этот файл в gzip архив, то его размер уменьшается до 21кБ. А большинство современных браузеров прекрасно работают с такими архивами.

При этом нет необходимости что-либо переделывать в самой теме.
Читать дальше

Как запретить просмотр содержимого папки на сервере

Владимир | | htaccess, Web разработка, Безопасность.

Логотип для htaccess

Веб сервер Apache имеет несколько директив (находятся в файле httpd.conf), которые определяют, что будет показано, когда посетитель заходит в какую-то папку.

Прежде всего, это
DirectoryIndex

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