Problemas com o jetty

4 respostas
R

Oi boa tarde, eu utilizo o jetty como servidor mas em algumas paginas onde preciso apresentar uma lista muito grande aparece um erro, eu ja pesquisei alguns foruns mas nenhuma das tentativas que fiz deu certo. Se alguem puder me ajudar, aí vai o código:

HTTP ERROR 500
Problem accessing /markti/views/fechamento/fechamentoRealizar.xhtml. Reason: 

    Form too large727001>200000

Caused by:
java.lang.IllegalStateException: Form too large727001>200000
	at org.mortbay.jetty.Request.extractParameters(Request.java:1561)
	at org.mortbay.jetty.Request.getParameter(Request.java:859)
	at br.com.stenovoice.filter.SessionFilter.doFilter(SessionFilter.java:63)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


--------------------------------------------------------------------------------
Powered by Jetty://

4 Respostas

quebrado

Adiciona no jetty.xml

<Call class="java.lang.System" name="setProperty"> <Arg>org.mortbay.jetty.Request.maxFormContentSize</Arg> <Arg>-1</Arg> </Call>

t+ :thumbup:

R

Se não for muito encomodo, o que exatamente este comando faz?

eduveks

Mas isto é uma quebra de segurança! Principalmente se for um site publicado!

Deve ser limitado semper os tamanhos de dados de input, sem limites estará vulnerável a ataques de DoS…

O que acontece é que esta configuração define o tamanho máximo do conteúdo do form enviado para o servidor, upload. Que no padrão é 200000 que é equivalente a 200kb! Se vc coloca -1 irá dizer que n há limites então o jetty via ficar lendo toda a informação de upload! Se alguem mau intensionado pegar e fazer um form de upload em html e colocar no action para mandar para um endereço do teu servidor e depois enviar um arquivo de 4GB o jetty vai tentar ler tudo isto! O q vai estourar com o heap da JVM da instancia do Jetty e o teu servidor vai parar… Isto se o atacante n fizer umas 10 vezes em simultâneo.

Se o teu form esta enviando 200kb para o servidor é um abuso tremendo! Vc tem q otimizar isto, e diminuir a quantidade de informação q esta transacionando do teu servidor para o cliente e principalmente do cliente para o servidor. Pois até será um processo muito moroso para o cliente toda vez q for enviar esta informação toda para o servidor dependendo da conexão da internet.

Se for numa rede interna, então o problema é um pouco menos grave, mas fica vulnerável na mesma para algum funcionário mais malicioso poder fazer alguma coisa, e para descobrir que é isto q esta derrubando o teu servidor vai ser muito complicado e nem vai passar pela tua cabeça se n se lembrar deste detalhe, e o culpado vai ser sempre o inocente do Jetty, Java, etc… :stuck_out_tongue:

Por exemplo se o usuário vai poder fazer upload de arquivos, numa média de 3MB, então define esta propriedade como 4MB no máximo, mas tenha sempre um valor limite.

quebrado

Uso o spring mvc, quando o usuário tentar fazer um upload maior que eu defini leva uma bela mensagem dizendo que o arquivo é muito grande.
Então estes ataques nunca foram problemas pra min.
Mas acredito que outros frameworks permitem limitar o tamanho do upload.
t+ :thumbup:

Criado 25 de agosto de 2010
Ultima resposta 29 de ago. de 2010
Respostas 4
Participantes 3