PCGI

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

PCGI (Perl Common Gateway Interface) — библиотека к языку программирования Perl для для работы с интерфейсом CGI (Common Gateway Interface).

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

Например, используя PCGI можно принять (при достаточно высокоскоростном Интернет-соединении или сети) файл, размером 500 Мб и более, расходуя мизерный объем оперативной памяти, потребляемой библиотекой при приеме данных (не более 2 Мб, без учета принятого массива данных).

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

  • наложение ограничения на объем принимаемых данных;
  • наложение ограничения на объем используемой на эти цели оперативной памяти;
  • наложение ограничений на ресурсы сервера по времени разбора или по степени загрузки системы.

В данной библиотеке применен оригинальный метод защиты. Как правило, разработчик всегда знает какое максимальное количество элементов может содержать конкретная веб-форма. Чаще всего это небольшое число (например, 10 — 20 элементов), однако, в редких случаях, это число может достигать сотен или, даже, тысяч элементов. Несмотря на то, что вредоносный запрос может подходить по допустимому размеру, он может содержать такое количество элементов, которое перегрузит сервер. Данный момент наиболее уязвим для хакерских атак. Например, двухмегабайтный запрос может перегрузить современный компьютер (3 ГГц) на минуту, при потреблении памяти от 50 — 200 Мб. Эти данные получены путём тестирования множества библиотек различных языков. PCGI же позволяет ограничить количество принимаемых элементов и, тем самым, обезопасить прием больших объемов данных. Ограничение в 1000 или даже более элементов не даст злоумышленнику возможности перегрузить сервер. Для ощутимых перегрузок, запрос должен содержать сотни тысяч и более элементов.

Библиотека полностью соответствует спецификации веб-форм комитета W3C, включая поддержку формата данных multipart/mixed.

См. также


Ссылки


Источник — «http://www.sbup.com/wiki/PCGI»
Личные инструменты

Served in 0.095 secs.