WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

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

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

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

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

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

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

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

См. также

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии