Я много искал, но все еще не понимаю, означает ли использование Гризли, что я защищен от этих атак или что я должен приложить больше усилий?Выполняет ли проект Grizzly заботу о переполнении буфера или об отказах в обслуживании?
В настоящее время, единственным, что я могу сделать в моей программе, что я раскрываю свои классы ресурсов (аннотированный @Path - Я использую Джерси) к Гризли, следующий код:
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(...){...}
В мои методы ресурсов, я могу получить доступ к списку компонентов JAXB, для которых я не указываю для него какой-либо размер (я не знаю, можно ли в этот момент проверить размер, чтобы избежать больших запросов - если это возможно, это будет отличная помощь, если кто-нибудь скажет мне!). Итак, я боюсь, что злоумышленник может отправлять последовательные и большие запросы (мой обычный размер запроса должен быть меньше 6 бит!), а результат - отказ в обслуживании - я просто начав изучать риски безопасности и обрабатывая их, моя первая попытка!
Я проверю размер в теле метода обработчика запроса, который после получения запроса полностью получен сервером. Это достаточно?
В документах Grizzly говорится, что у него хорошее управление буфером (возможно, я смешиваю переполнение буфера с отказом в обслуживании), но я не знаю, должен ли я устанавливать какие-либо настройки или он по умолчанию защищает?
EDIT:
Я получил хороший ответ на часть моего вопроса, но я до сих пор ищу некоторые намеки особенно о гризли или Джерси, и есть ли единая точка входа, в котором я может сделать некоторые проверки для всех входящих запросов?
Спасибо!
благодаря , можете ли вы быть немного более конкретным в отношении подхода «всей системы», давая пример? Я не нашел конкретного подхода с этим именем в программировании и безопасности, поэтому это должно быть общее выражение. Извините, я не знаком в этой области, и я не являюсь родным английским. – samaneh
Да, по той же причине я ищу, как я могу контролировать злоупотребление вещами, такими как дорогостоящие запросы (например, контроль количества входящих запросов в срок) в трикотаже, в то время как каждый запрос обрабатывается непосредственно методом ответа и я не вижу, откуда эти запросы первоначально получены, а затем направляется на эти методы ответа. – samaneh