A Biblioteca de Segurança da Coverity (CSL) é um conjunto leve de rotinas de fuga para corrigir o Script Cross-Site (XSS), a injeção de SQL e outros defeitos de segurança nos aplicativos da Web Java.
Eis por que vale a pena conferir:
É seguro: levamos a sério a segurança da CSL. Toda alteração é cuidadosamente examinada por meio de um processo que inclui revisão de código manual, análise estática, teste de fuzz e teste de unidade.
É conveniente: o CSL contém escândalos para injeção de XSS e SQL que estão ausentes de bibliotecas padrão como Apache Commons e Java EE. Utilizamos métodos estáticos rápidos e fáceis de invocar com nomes curtos e intuitivos. Também fornecemos ganchos para a linguagem de expressão (EL) para facilitar o uso do JSPS.
É pequeno: o CSL não possui dependências externas e é uma biblioteca minimalista. Isso significa que é rápido e não requer nenhuma configuração além de soltar um frasco no local certo ou modificar sua compilação para fazê -lo.
É gratuito: o CSL é distribuído sob uma licença de estilo BSD. Apreciaríamos que os patches fossem enviados de volta para nós, mas não é necessário.
Os usuários do consultor de segurança de cobertura obtêm orientação de remediação com base em rotinas de fuga no CSL. No entanto, o CSL é um projeto independente, sem dependências do consultor de segurança.
A classe Escape contém vários escapadores para conteúdo da Web. Essas funções de fuga ajudam a remediar defeitos comuns (principalmente scripts cruzados) que ocorrem quando os dados são inseridos no elemento HTML, valores de atributo HTML, URI, Strings JavaScript, SQL como cláusulas, etc. Mais informações estão disponíveis no diretório de fuga.
Antes de usar qualquer um desses métodos, você deve entender o contexto (ou contextos aninhados) nos quais os dados são inseridos. Vários exemplos de maquete com explicação estão disponíveis no repositório e mais estarão disponíveis em nosso blog. Se você deseja testar a biblioteca para entender como ela astraenta os ataques de segurança, nosso teste funcional é o aplicativo certo para criar/implantar/testar.
Pronto para usá -lo? Um último passo é dar uma olhada no Javadoc mais recente diretamente no Github.
Para incluir esta biblioteca no seu projeto Maven, adicione o seguinte:
< dependency >
< groupId >com.coverity.security</ groupId >
< artifactId >coverity-escapers</ artifactId >
< version >1.1.1</ version >
</ dependency >
ou soltar o arquivo JAR no diretório WEB-INF/lib
.
Então você pode usá -lo diretamente em seus JSPs:
<%@ taglib uri = " http://coverity.com/security " prefix = " cov " %>
< script type = " text/javascript " >
var x = ' ${ cov : jsStringEscape(param . tainted) } ' ;
</ script >
< div onclick = " alert(' ${ cov : htmlEscape(cov : jsStringEscape(param . tainted)) } ') " >
${ cov : htmlEscape(param . tainted) }
</ div >
ou em seus programas Java:
import com . coverity . security . Escape ;
// ...
return "<div onclick='alert( " "
+ Escape . html ( Escape . jsString ( request . getParameter ( "tainted" )))
+ " " )'>"
+ Escape . html ( request . getParameter ( "tainted" ))
+ "</div>" ;
Para entrar em contato com o SRL, envie um email para [email protected]. Libere, estamos ansiosos por seus pedidos de tração!
Copyright (c) 2012-2016, Coverity, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
- Neither the name of Coverity, Inc. nor the names of its contributors may be used
to endorse or promote products derived from this software without specific prior
written permission from Coverity, Inc.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND INFRINGEMENT ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.