Coverity Security Library (CSL) เป็นชุดการหลบหนีที่มีน้ำหนักเบาสำหรับการแก้ไขสคริปต์ข้ามไซต์ (XSS) การฉีด SQL และข้อบกพร่องด้านความปลอดภัยอื่น ๆ ในแอปพลิเคชันเว็บ Java
นี่คือเหตุผลที่คุ้มค่าที่จะตรวจสอบ:
ปลอดภัย: เราให้ความปลอดภัยของ CSL อย่างจริงจัง การเปลี่ยนแปลงทุกครั้งจะได้รับการพิจารณาอย่างรอบคอบผ่านกระบวนการที่มีการทบทวนรหัสด้วยตนเองการวิเคราะห์แบบคงที่การทดสอบฟัซซี่และการทดสอบหน่วย
สะดวก: CSL มีผู้หลบหนีสำหรับการฉีด XSS และ SQL ที่หายไปจากไลบรารีมาตรฐานเช่น Apache Commons และ Java EE เราใช้วิธีการคงที่อย่างรวดเร็วและง่ายต่อการใช้ชื่อที่สั้นและใช้งานง่าย นอกจากนี้เรายังให้ตะขอสำหรับภาษานิพจน์ (EL) เพื่อให้ใช้งานง่ายภายใน JSP
มันมีขนาดเล็ก: CSL ไม่มีการพึ่งพาภายนอกและเป็นห้องสมุดที่เรียบง่าย ซึ่งหมายความว่ามันเร็วและไม่จำเป็นต้องมีการกำหนดค่าใด ๆ นอกเหนือจากการวางขวดในตำแหน่งที่เหมาะสมหรือแก้ไขงานสร้างของคุณให้ทำ
ฟรี: CSL มีการแจกจ่ายภายใต้ใบอนุญาตสไตล์ BSD เราจะขอบคุณแพตช์ที่ถูกส่งกลับมาให้เรา แต่ไม่จำเป็น
ผู้ใช้ที่ปรึกษาด้านความปลอดภัยของ Coverity ได้รับคำแนะนำการแก้ไขตามการหลบหนีใน CSL อย่างไรก็ตาม CSL เป็นโครงการแบบสแตนด์อโลนที่ไม่มีการพึ่งพาที่ปรึกษาด้านความปลอดภัย
คลาส Escape มีผู้หลบหนีหลายรายการสำหรับเนื้อหาเว็บ ฟังก์ชั่นการหลบหนีเหล่านี้ช่วยแก้ไขข้อบกพร่องทั่วไป (ส่วนใหญ่เป็นสคริปต์ข้ามไซต์) ที่เกิดขึ้นเมื่อข้อมูลถูกแทรกลงในองค์ประกอบ HTML, ค่าแอตทริบิวต์ HTML, URI, สตริง JavaScript, SQL เช่นประโยค ฯลฯ ข้อมูลเพิ่มเติมมีอยู่ในไดเรกทอรีหลบหนี
ก่อนที่จะใช้วิธีการใด ๆ เหล่านี้คุณควรเข้าใจบริบท (หรือบริบทที่ซ้อนกัน) ซึ่งข้อมูลถูกแทรก ตัวอย่างจำลองหลายอย่างพร้อมคำอธิบายมีอยู่ในที่เก็บและอื่น ๆ จะมีอยู่ในบล็อกของเรา หากคุณต้องการทดสอบไลบรารีเพื่อทำความเข้าใจว่าการโจมตีด้านความปลอดภัยนั้นเป็นการทดสอบความปลอดภัยการทดสอบการทำงานของเราเป็นแอพที่เหมาะสมในการสร้าง/ปรับใช้/ทดสอบ
พร้อมใช้งานแล้วหรือยัง? ขั้นตอนสุดท้ายคือการดู Javadoc ล่าสุดโดยตรงบน GitHub
หากต้องการรวมไลบรารีนี้ไว้ในโครงการ Maven ของคุณเพิ่มสิ่งต่อไปนี้:
< dependency >
< groupId >com.coverity.security</ groupId >
< artifactId >coverity-escapers</ artifactId >
< version >1.1.1</ version >
</ dependency >
หรือวางไฟล์ jar ในไดเรกทอรี WEB-INF/lib
จากนั้นคุณสามารถใช้โดยตรงใน 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 >
หรือในโปรแกรม Java ของคุณ:
import com . coverity . security . Escape ;
// ...
return "<div onclick='alert( " "
+ Escape . html ( Escape . jsString ( request . getParameter ( "tainted" )))
+ " " )'>"
+ Escape . html ( request . getParameter ( "tainted" ))
+ "</div>" ;
หากต้องการติดต่อ SRL โปรดส่งอีเมลถึงเราที่ [email protected] แยกออกไปเราหวังว่าจะได้คำขอดึงของคุณ!
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.