Безопасность PHP. Проверка поступивших данных

Автор: Виталий Желтяков

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

Виды уязвимостей PHP

Демонстрация ошибок пользователю

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

Доступность данных о характеристиках системы пользователю

Смысл: пользователь может получить доступ к данным, дающим представление о системе. Не является критичной уязвимостью, но поваляет взломщику получить дополнительную информацию о структуре и работе сервера. Причина этой уязвимости в ошибках и «недосмотрах» программиста. Примером может служить наличие файла phpinfo.php с одноименной функцией в свободном доступе.

Доступность данных о программном коде пользователю

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

Запись дисков в Delphi средствами IMAPI

Автор: Руслан Аблязов

Доброго времени суток уважаемые любители Delphi. В этой статье я расскажу про запись CD/DVD дисков в среде Delphi. Общие принципы, изложенные в этой статье подойдут не только для языка Delphi, но и для языка С++. Для прочтения этой статьи с максимальной пользой, читателю рекомендуется получить базовые понятия об OLE/COM, впрочем даже незнание этих понятий вряд ли помешает понимаю этой статьи, так как классы и компоненты Delphi (так же как и классы С++), которые мы будет использовать полностью скрывают от нас все тонкости и неудобства использования COM интерфейсов для записи дисков.

Технология, которая будет описываться в этой статье это технология IMAPI v2.0. Одной статьей эту технологию описать не представляется возможным, поэтому в этой статье будут описаны только основы работы с IMAPI2. Эта технология довольно-таки новая, и поддерживается операционными системами Windows XP SP2, 2003 Server, Vista и т.д. Т.е. перед тем как использовать технологию IMAPI2, следует убедиться, в том, что операционная система на компьютере, на котором будет работать программа, является как минимум одной из вышеперечисленных или более новая (например, Windows 7 ). «Олицетворением» IMAPI2 являются две библиотеки imapi2.dll и imapi2fs.dll. Перед тем как использовать эту технологию вы или программа, которая будет работать на компьютере, должны убедиться, что эти две DLL существуют. Если их нет, то следует установить обновление KB932716 с узла Microsoft.com (ссылки на скачку обновления, а также обновление для Win XP смотрите в конце статьи) [1, 2]. 

Использование Netlink для мониторинга и управления сетевой подсистемой Linux

Автор: Олег Кутков

И вновь, после вынужденного долгого перерыва приветствую уважаемых читателей нашего журнала. За время этого перерыва накопилось достаточно много интересных материалов, которые я постараюсь осветить в новых статьях. Начну с этой. Надеюсь, что эта информация кому-то поможет и пригодится, как, в свое время, помогла мне.

 В прошлой статье я рассказал о системном вызове IOCTL и обещал рассказать о Netlink. Пришло время выполнять обещание :) К сожалению, невозможно изложить все в рамках одной журнальной статьи. Поэтому материал я разбил на несколько частей. Настоящая статья – первая часть.

Итак, Netlink представляет из себя особый компонент Linux ядра. С ним можно общаться через обычный сокет передавая и принимая сообщения, сформированные особым образом. Что же дает нам netlink ?

С помощью Netlink мы можем:

  • получать уведомления об изменении сетевых интерфейсов (название изменившегося интерфейса и что именно произошло), таблиц маршрутизации, файрволла;
  • управлять всеми таблицами маршрутизации;
  • управлять параметрами сетевых интерфейсов;
  • управлять параметрами файрволла;
  • управлять arp таблицей;
  • реализовать взаимодействие со своим модулем в ядре.

Арифметика длинных чисел

Автор: Utkin

Рано или поздно программист сталкивается с задачей, когда имеющийся стандартный числовой тип не позволяет хранить весь необходимый для работы программы диапазон значений. Решается это обычно полумерами – как правило, требуется одна-две операции и в подавляющем большинстве случаев это целочисленные сложение и умножение. Многие утверждают, что имеющихся встроенных числовых типов данных достаточно, и нет задач, для которых требуются «длинные» числа. Однако, это не так. Навскидку – математика, астрономия, исследовательская работа (например, шифрование и сжатие информации). Скажу даже более, такие задачи не распространены как раз по причине слабой поддержки длинных чисел. Впрочем, разработчики многих современных языков программирования постепенно осознают это и «длинная» арифметика имеется в ряде языков высокого уровня – Scheme, Python, Ruby и т.д. Прочие языки имеют соответствующие библиотеки. Статья рассматривает основные вопросы, связанные с созданием собственного набора функций и процедур для работы с так называемыми длинными числами.

В данной статье речь пойдёт о том, как сделать поддержку длинной арифметики в своих собственных программах. Зачем это надо? Во-первых, это просто интересно. Во-вторых, имеющиеся библиотеки не всегда удовлетворяют нашим строгим требованиям. Например, в указанных выше языках программирования используются в основном целочисленная длинная арифметика, а как же вещественные числа? Точность, прежде всего, никаких игр с плавающими числами, округлениями и т.д. В-третьих, я хотел бы продемонстрировать некоторые аспекты чисел, чтобы показать, что математика – это не самостоятельная дисциплина, а часть логики (то есть арифметика может быть выражена логически).

Запускаем AHCI

Автор: Игорь Теслюк

С  выходом операционных систем Windows Vista и Windows Seven появилась возможность использовать режим AHCI для жестких дисков. Что же такого замечательного, в этих четырех буквах.. AHCI позволяет активировать многие функции Serial ATA, которые недоступны в режиме совместимости с морально устаревшим Parallel ATA.

Включение AHCI вызывает BSOD

Если во время установки Windows у вас был выбран режим совместимости с IDE для жестких дисков, то, выбрав в BIOS режим AHCI, вы получите Синий экран смерти(Blue Screen Of Death) во время загрузки системы «0x7B Blue Screen of Death STOP» (INACCESSIBLE_BOOT_DEVICE). Это вызвано тем, что во время установки Windows определяет оборудование и загружает только необходимые драйверы. Чтобы решить эту проблему нужно активировать драйвер AHCI.

Запускаем <regedit.exe> (Пуск → Выполнить → regedit)

Переходим в ветку:

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Msahci

Powered by Procoder