La bibliothèque de sécurité de la couverture (CSL) est un ensemble léger de routines d'échappement pour réparer les scripts inter-sites (XSS), l'injection SQL et d'autres défauts de sécurité dans les applications Web Java.
Voici pourquoi cela vaut la peine de vérifier:
C'est sûr: nous prenons la sécurité de CSL au sérieux. Chaque changement est soigneusement examiné grâce à un processus qui comprend une revue manuelle de code, une analyse statique, des tests de fuzz et des tests unitaires.
C'est pratique: CSL contient des évasions pour les XSS et l'injection SQL qui manquent dans les bibliothèques standard comme Apache Commons et Java EE. Nous utilisons des méthodes statiques rapides et faciles à invoquer avec des noms courts et intuitifs. Nous fournissons également des crochets pour le langage d'expression (EL) pour le rendre facile à utiliser dans JSPS.
Il est petit: CSL n'a pas de dépendances externes et est une bibliothèque minimaliste. Cela signifie qu'il est rapide et ne nécessite aucune configuration en plus de supprimer un pot à la bonne place ou de modifier votre version pour le faire.
C'est gratuit: CSL est distribué sous une licence de style BSD. Nous apprécions que les correctifs nous soient renvoyés mais ce n'est pas nécessaire.
Les utilisateurs de Coverity Security Advisor obtiennent des conseils de correction basés sur les routines d'échappement dans CSL. Cependant, CSL est un projet autonome sans dépendances à l'égard du conseiller en sécurité.
La classe Escape contient plusieurs évasions pour le contenu Web. Ces fonctions d'échappement aident à remède les défauts courants (principalement des scripts inter-sites) qui se produisent lorsque les données sont insérées dans l'élément HTML, les valeurs d'attribut HTML, URI, les chaînes JavaScript, les clauses comme SQL, etc. Plus d'informations sont disponibles dans le répertoire d'échappement.
Avant d'utiliser l'une de ces méthodes, vous devez comprendre le contexte (ou les contextes imbriqués) dans lesquels les données sont insérées. Plusieurs exemples de maquette avec explication sont disponibles dans le référentiel, et d'autres seront disponibles sur notre blog. Si vous souhaitez tester la bibliothèque pour comprendre comment il siffle les attaques de sécurité, notre TestSuite fonctionnelle est la bonne application pour créer / déploier / tester.
Prêt à l'utiliser? Une dernière étape consiste à consulter le dernier Javadoc directement sur GitHub.
Pour inclure cette bibliothèque dans votre projet Maven, ajoutez ce qui suit:
< dependency >
< groupId >com.coverity.security</ groupId >
< artifactId >coverity-escapers</ artifactId >
< version >1.1.1</ version >
</ dependency >
ou déposez le fichier JAR dans le répertoire WEB-INF/lib
.
Ensuite, vous pouvez l'utiliser directement dans votre 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 dans vos programmes Java:
import com . coverity . security . Escape ;
// ...
return "<div onclick='alert( " "
+ Escape . html ( Escape . jsString ( request . getParameter ( "tainted" )))
+ " " )'>"
+ Escape . html ( request . getParameter ( "tainted" ))
+ "</div>" ;
Pour contacter le SRL, veuillez nous envoyer un courriel à [email protected]. Fourk loin, nous attendons avec impatience vos demandes de traction!
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.