Die Coverity Security Library (CSL) ist ein leichter Satz von Fluchtroutinen zur Behebung von Cross-Site-Skripten (XSS), SQL-Injektion und anderen Sicherheitsfehlern in Java-Webanwendungen.
Hier ist, warum es sich lohnt, es zu überprüfen:
Es ist sicher: Wir nehmen die Sicherheit von CSL ernst. Jede Änderung wird sorgfältig durch einen Prozess geprüft, der manuelles Codeüberprüfung, statische Analyse, Fuzz -Tests und Unit -Tests umfasst.
Es ist bequem: CSL enthält Eskaper für XSS- und SQL -Injektion, die in Standardbibliotheken wie Apache Commons und Java EE fehlen. Wir verwenden schnelle, einfach zu statische Methoden mit kurzen, intuitiven Namen. Wir bieten auch Haken für die Ausdruckssprache (EL), um die Verwendung innerhalb von JSPs einfach zu verwenden.
Es ist klein: CSL hat keine externen Abhängigkeiten und ist eine minimalistische Bibliothek. Dies bedeutet, dass es schnell ist und keine Konfiguration benötigt, abgesehen davon, dass ein Glas an der richtigen Stelle fallen oder Ihren Build dafür geändert wird.
Es ist kostenlos: CSL wird unter einer Lizenz im BSD-Stil verteilt. Wir würden uns freuen, dass Patches an uns zurückgeschickt werden, aber es ist nicht erforderlich.
Benutzer von Deckungssicherheitsberatern erhalten eine Sanierung von Anleitungen, die auf der Grundlage der Fluchtroutinen in CSL basieren. CSL ist jedoch ein eigenständiges Projekt ohne Abhängigkeiten von Sicherheitsberatern.
Die Escape -Klasse enthält mehrere Eskaper für Webinhalte. Diese Fluchtfunktionen helfen, gemeinsame Defekte (hauptsächlich Cross-Site-Scripting) zu beheben, die auftreten, wenn die Daten in HTML-Element, HTML-Attributwerte, URI, JavaScript-Zeichenfolgen, SQL-ähnliche Klauseln usw. eingefügt werden. Weitere Informationen finden Sie im Escape-Verzeichnis.
Bevor Sie diese Methoden verwenden, sollten Sie den Kontext (oder verschachtelten Kontexte) verstehen, in dem die Daten eingefügt werden. Im Repository sind mehrere Modelle mit Erläuterungen erhältlich, und weitere werden in unserem Blog verfügbar sein. Wenn Sie die Bibliothek testen möchten, um zu verstehen, wie sie Sicherheitsangriffe durch Pfeifen und unsere Funktionstestsuite für erstellt/bereitstellen/testen möchten.
Bereit, es zu benutzen? Ein letzter Schritt ist, sich den neuesten Javadoc direkt auf GitHub anzusehen.
Um diese Bibliothek in Ihr Maven -Projekt aufzunehmen, fügen Sie Folgendes hinzu:
< dependency >
< groupId >com.coverity.security</ groupId >
< artifactId >coverity-escapers</ artifactId >
< version >1.1.1</ version >
</ dependency >
Oder geben Sie die JAR-Datei im Verzeichnis WEB-INF/lib
.
Dann können Sie es direkt in Ihren JSPs verwenden:
<%@ 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 >
oder in Ihren Java -Programmen:
import com . coverity . security . Escape ;
// ...
return "<div onclick='alert( " "
+ Escape . html ( Escape . jsString ( request . getParameter ( "tainted" )))
+ " " )'>"
+ Escape . html ( request . getParameter ( "tainted" ))
+ "</div>" ;
Um die SRL zu kontaktieren, senden Sie uns bitte eine E-Mail an [email protected]. Gabel weg, wir freuen uns auf Ihre Pull -Anfragen!
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.