Я много искал, но до сих пор не понимаю, означает ли использование Grizzly, что я защищен от этих атак или что мне следует приложить еще больше усилий?
В настоящее время единственное, что я делаю в своемпрограмма заключается в том, что я развертываю свои классы ресурсов (аннотированные @Path - я использую Джерси) в Grizzly, используя следующий код:
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages","MyServer.resources");
SelectorThread threadSelector;
try{
threadSelector = GrizzlyWebContainerFactory.create(
uri, initParams);
System.out.println("Press enter to stop server...");
System.in.read();
threadSelector.stopEndpoint();
}catch(...){...}
В моих методах ресурсов я могу получить доступ к списку JAXBbean-компоненты, для которых я не определяю размер (я не знаю, можно ли проверить размер на этом этапе, чтобы избежать получения больших запросов - если это возможно, будет очень полезно, если кто-нибудь скажет мне!), Поэтому я боюсь, что злоумышленник может отправлять последовательные и большие запросы (мой обычный размер запроса должен быть меньше 6 бинов!) И приводить к отказу в обслуживании - я только начинаю изучать угрозы безопасности и обрабатывать их, мойпервая попытка!
Я проверю размер в теле метода-обработчика запроса, то есть после того, как запрос полностью получен сервером.Достаточно ли этого?
В документах Grizzly сказано, что он имеет хорошее управление буфером (возможно, я смешиваю переполнение буфера с отказом в обслуживании), но я не знаю, следует ли мне устанавливать какие-либо настройки или это выполняетсязащита по умолчанию?
РЕДАКТИРОВАТЬ:
Я получил хороший ответ на часть моего вопроса, но я все еще ищу некоторые намеки, особенно о Гризли или Джерси и есть лиединственная точка входа, в которой я могу сделать некоторые проверки для всех входящих запросов?
Спасибо!