แม้ว่าฉันจะเป็นผู้สนับสนุนแอปฟรีและโอเพนซอร์สอย่างจริงจังมาโดยตลอด แต่ก็ยากที่จะตรวจสอบโค้ดของทุกแอปด้วยตนเองและฉันมักจะตั้งหน้าตั้งตารอเครื่องมือตรวจสอบโค้ด
เครื่องมือเหล่านี้ช่วยให้คุณตรวจจับพฤติกรรมการเขียนโปรแกรมที่ไม่ดีได้อย่างรวดเร็วการเปลี่ยนแปลงที่สำคัญในคุณสมบัติของส่วนประกอบส่วนประกอบที่มีความเสี่ยงสูงข้อบกพร่องด้านความปลอดภัย ฯลฯ นอกจากนี้เครื่องมือเหล่านี้มักเป็นตัวบ่งชี้ที่ใช้ GUI ซึ่งทำให้เข้าใจได้ง่ายโดยไม่ต้องมีความเชี่ยวชาญในภาษาโปรแกรมดังกล่าว . ด้วยเหตุนี้จึงไม่ใช่ว่าแอปตรวจสอบโค้ดทั้งหมดจะได้รับการสร้างขึ้นอย่างเท่าเทียมกัน ดังนั้นนี่คือเครื่องมือตรวจสอบโค้ดที่ดีที่สุดสำหรับทั้งบุคคลและองค์กร
เครื่องมือตรวจสอบโค้ดที่ดีที่สุด
1. เกอร์ริต
Gerrit เป็นเครื่องมือตรวจสอบโค้ดบนเว็บที่พัฒนาโดย Google และต้องใช้เซิร์ฟเวอร์ JDK เพื่อเรียกใช้ ทำงานร่วมกับ GitHub ดังนั้นก่อนที่คุณจะผลักดันโค้ดไปสู่การผลิตจะต้องผ่าน Gerrit ซึ่งเพื่อนของคุณสามารถตรวจสอบโค้ดได้ Gerrit รองรับการผลักดันโปรเจ็กต์ผ่านคำสั่ง git โดยใช้ SSH หรือ HTTPS ตัวอย่างเช่นคุณต้องการอัปโหลดโครงการของคุณไปยัง Gerrit เพื่อตรวจสอบ คุณสามารถ ssh เซิร์ฟเวอร์ Gerrit ของคุณและใช้ "git push" เพื่ออัปโหลดที่เก็บของคุณไปยัง Gerrit
Gerrit ยังมีชุดปลั๊กอินเช่น CodeMirror, Phabriactor เพื่อเชื่อมโยงกับเครื่องมือตรวจสอบโค้ดอื่น ๆ และรับฟังก์ชันเพิ่มเติม
ภาพรวม:
- ผสานรวมกับ GitHub ได้เป็นอย่างดี
- ทำงานร่วมกับเซิร์ฟเวอร์ SSH และ HTTPs ที่เปิดใช้งาน git
- รองรับภาษาที่ จำกัด เช่น C, C ++,
ดาวน์โหลด Gerrit
2. RhodeCode
RhodeCode เป็นอีกหนึ่งเครื่องมือตรวจสอบรหัสแบบเพียร์เช่น Gerrit ที่ทำงานร่วมกับ GitHub อย่างไรก็ตามมันยังทำงานร่วมกับ Mercurial & Subversion ได้เป็นอย่างดี เมื่อเปรียบเทียบกับ Gerrit แล้วจะมีอินเทอร์เฟซที่สมบูรณ์กว่าและใช้งานง่ายกว่ามาก คุณสามารถแสดงความคิดเห็นแบบอินไลน์และทำการเปลี่ยนแปลงด้วยโค้ดผ่านทางเว็บอินเตอร์เฟสของ RhodeCode เอง ซึ่งแตกต่างจากส่วนขยาย Gerrit RhodeCode มี JSON-RPC API เพื่อให้คุณสร้างเครื่องมือของบุคคลที่สามโดยใช้ คุณลักษณะที่ฉันชอบที่สุดคือบันทึกการเปลี่ยนแปลงด้วยภาพที่ให้มุมมองแบบนกสำหรับการเปลี่ยนแปลงพัฒนาการและช่วยในการติดตาม
นอกจากนี้คุณยังมีคุณสมบัติด้านความปลอดภัยเช่นการแจ้งเตือนกฎที่เก็บ แจ้งผู้ดูแลระบบเกี่ยวกับกิจกรรมที่น่าสงสัยใน repo คุณยังสามารถ จำกัด การเข้าถึง repo เฉพาะช่วง IP บางช่วง
ภาพรวม:
- เครื่องมือตรวจสอบรหัสเพียร์
- ตัวแก้ไขแบบอินไลน์ภายในเว็บอินเตอร์เฟส RhodeCode
- ตัวเลือกความปลอดภัยในการตรวจสอบ ACL การกรอง IP ฯลฯ
ดาวน์โหลด RhodeCode
3. ค้นหาข้อบกพร่องด้านความปลอดภัย
ค้นหาข้อบกพร่องด้านความปลอดภัยซึ่งตรงกันข้ามกับชื่อเป็นปลั๊กอินสำหรับค้นหาข้อบกพร่องทุกประเภทในโค้ดของคุณ สามารถตรวจจับการปฏิบัติของโค้ดที่ไม่ดีความถูกต้องปัญหาคอขวดของประสิทธิภาพข้อบกพร่องด้านความปลอดภัยรหัสหลบความถูกต้องแบบมัลติเธรด ฯลฯ ปลั๊กอินทำงานโดยซิงค์กับที่เก็บ Maven Central อย่างไรก็ตามหากคุณใช้ IDE สามารถใช้ร่วมกับ Netbeans, Eclipse, IntelliJ, Jenkins และ Sonar Qube ตัวอย่างเช่นฉันใช้ Eclipse ในตลาด Eclipse มีให้บริการภายใต้ชื่อ "SpotBugs" ดังนั้นขั้นตอนการติดตั้งจึงค่อนข้างง่ายและตรงไปตรงมา
ข้อแม้เดียวกับ Spotbugs คือใช้งานได้กับโค้ด Java และแอปพลิเคชัน Java EE เท่านั้น
ภาษาที่รองรับ: Java, Java EE
ภาพรวม:
-
- ทำงานร่วมกับที่เก็บส่วนกลาง Maven
- ปลั๊กอินสำหรับ Eclipse, Jenkins, Netbeans ฯลฯ
ดาวน์โหลด Find SecurityBugs
4. SearchDiggity
SearchDiggity เป็นโครงการที่รวบรวมเครื่องมือแฮ็กยอดนิยมเช่น GoogleDiggity, BingDiggity, SHODAN Diggity, FlashDiggity เป็นต้นโดยส่วนใหญ่เป็นเครื่องมือในการตรวจสอบความปลอดภัยของเว็บแอปหรือแอปพลิเคชันเซิร์ฟเวอร์ของคุณ ใช้เครื่องมือค้นหาของ Google, Bing และ SHODAN เพื่อโจมตีและแทรกซึมเข้าไปในเว็บไซต์หรือเซิร์ฟเวอร์ของคุณ ใช้การรวมกันของนิพจน์ทั่วไปในการค้นหาเพื่อทำให้ข้อมูลรั่วไหล ตัวอย่างเช่น SearchDiggity สามารถตรวจสอบว่าคีย์ AWS ของคุณถูกจัดเก็บเป็นข้อความธรรมดาหรือไม่หรือการเข้าสู่ระบบเว็บไซต์ของคุณมีแนวโน้มที่จะถูก SQL Injection
เป็นสิ่งที่ต้องมีหากเว็บเซิร์ฟเวอร์ของคุณรองรับการเข้าชมเว็บจำนวนมากและโฮสต์ข้อมูลจำนวนมาก
ในกรณีที่คุณได้รับข้อผิดพลาด“ Google Bot Detected หยุดการสแกนชั่วคราวเป็นเวลา 15 นาที” คุณสามารถเปลี่ยน SearchDiggity ให้ใช้ API แบบชำระเงินอย่างเป็นทางการที่ Google, Bing และ SHODAN จัดหาให้ใน Help> Contents
ภาพรวม:
- ความสามารถในการตรวจสอบ SQL Injection พอร์ตที่มีช่องโหว่บนเว็บเซิร์ฟเวอร์ของคุณ
- ทำงานโดยใช้เครื่องมือค้นหา Google, Bing และ SHODAN
- เครื่องมือ Windows เท่านั้น
ดาวน์โหลด SearchDiggity
5. ฟาบริเคเตอร์
Phabricator คือชุดเครื่องมือตรวจสอบโค้ดเว็บฟรี เป็นแอปพลิเคชัน LAMP (Linux, Apache, MySQL, PHP) ที่เขียนด้วย PHP และเป็นเครื่องมือตรวจสอบและทำงานร่วมกันเช่น GitHub
คุณสามารถทดลองใช้ Phabricator ก่อนที่จะติดตั้งบนเซิร์ฟเวอร์ LAMP ของคุณ มีเว็บอินสแตนซ์ที่โฮสต์เรียกว่า Phacility คุณสามารถซิงค์ในที่เก็บโค้ด GitHub หรือ SVN กับอินสแตนซ์นี้ได้โดยตรง เครื่องมือที่สำคัญที่สุดใน Phabricator คือ Differential มันทำงานคล้ายกับ GitHub commits เมื่อมีการผลักดันการเปลี่ยนแปลงจะแจ้งให้ผู้ใช้ทุกคนตรวจสอบการเปลี่ยนแปลง มันแสดงการเปลี่ยนแปลงและโค้ดที่สมบูรณ์ หลังจากได้รับการอนุมัติการเปลี่ยนแปลงจะได้รับการอนุมัติและสามารถผลักดันไปสู่การผลิตได้
ภาษาที่รองรับ: NA
ภาพรวม:
- LAMP เซิร์ฟเวอร์
- การทำงานร่วมกันและตรวจสอบการเปลี่ยนแปลงในโค้ดกับผู้ใช้รายอื่น
- การตรวจสอบการกระทำของผู้ใช้บนเว็บเซิร์ฟเวอร์
- ไม่ทำงานบนเครื่อง Windows
6. ตัวตรวจสอบแอปพลิเคชัน MS
Microsoft เพิ่งเปิดตัวเครื่องมือตรวจสอบโค้ดที่เรียกว่า Application Inspector ตาม Microsoft เครื่องมือนี้สร้างขึ้นเพื่อวิเคราะห์ซอฟต์แวร์โอเพนซอร์สและสิ่งที่โค้ดไลบรารีดำเนินการโดยสรุป ในการใช้ Application Inspector คุณจะต้องติดตั้งแพ็กเกจ“ dotnet-sdk” ส่งออกรายงานในไฟล์ HTML ฉันลองใช้แอป Nylas mail แล้วสรุปรายงานค่อนข้างกระชับ
การนำเสนอมีการแบ่งประเภทของคุณสมบัติซอฟต์แวร์โปรโตคอลที่ใช้ API ที่เรียกว่า ฯลฯ ตัวอย่างเช่นในแง่ของการจัดเก็บข้อมูล Nylas mail ใช้ SQL และ NoSQL สำหรับบริการส่งข้อความบนคลาวด์ PubSub ฉันต้องคลิกที่การจัดเก็บข้อมูลและปุ่ม "ดู" ข้างรายละเอียด จะแสดงกฎที่เกี่ยวข้องทางด้านขวาและเมื่อคลิกที่กฎแล้วคุณจะได้รับการตรวจสอบโค้ดในป๊อปอัป การข้ามและตรวจสอบโค้ดทำได้ง่ายและรวดเร็ว
ภาษาที่รองรับ: C, C ++, C #, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell, (API) AWS, Azure
ภาพรวม:
- รายงานที่กระชับเชื่อมโยงและตรวจสอบโค้ดได้ง่าย
- รองรับหลายภาษา
ดาวน์โหลด MS Application Inspector
ปิดคำ
ฉันใช้ Microsoft Application Inspector เนื่องจากวิธีการรันและปืนของแอป ได้รับการสนับสนุนหลายภาษาและให้แนวคิดที่ดีเกี่ยวกับโค้ด ในกรณีที่คุณมีเว็บเซิร์ฟเวอร์เฉพาะของคุณเอง Gerrit หรือ Phabricator เป็นทางเลือกที่ดีสำหรับ GitHub สำหรับปัญหาหรือข้อสงสัยเพิ่มเติมโปรดแจ้งให้เราทราบในความคิดเห็นด้านล่าง
ยังอ่าน:7 บอร์ดพัฒนาที่ดีที่สุดในการสร้างโครงการ DIY แรกของคุณ