Интернет магазин китайских планшетных компьютеров



Компьютеры - PCGI

10 июня 2011





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

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

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

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

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

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

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



Просмотров: 960


<<< Phalanger