SARIF เป็นรูปแบบการวิเคราะห์แบบคงที่โครงการนี้พยายามที่จะให้อินเทอร์เฟซอย่างง่ายเพื่อสร้างรายงานในรูปแบบ SARIF
ตัวอย่างนี้ใช้โดยตรงจากหน้า Microsoft Sarif
{
"version" : " 2.1.0 " ,
"$schema" : " https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json " ,
"runs" : [
{
"tool" : {
"driver" : {
"name" : " ESLint " ,
"informationUri" : " https://eslint.org " ,
"rules" : [
{
"id" : " no-unused-vars " ,
"shortDescription" : {
"text" : " disallow unused variables "
},
"helpUri" : " https://eslint.org/docs/rules/no-unused-vars " ,
"properties" : {
"category" : " Variables "
}
}
]
}
},
"artifacts" : [
{
"location" : {
"uri" : " file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js "
}
}
],
"results" : [
{
"level" : " error " ,
"message" : {
"text" : " 'x' is assigned a value but never used. "
},
"locations" : [
{
"physicalLocation" : {
"artifactLocation" : {
"uri" : " file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js " ,
"index" : 0
},
"region" : {
"startLine" : 1 ,
"startColumn" : 5
}
}
}
],
"ruleId" : " no-unused-vars " ,
"ruleIndex" : 0
}
]
}
]
}หนึ่งในโครงการที่ฉันชอบคือ TFSEC - นี่คือเครื่องมือการวิเคราะห์แบบคงที่สำหรับ Terraform ซึ่งผลิตผลลัพธ์ในหลายรูปแบบ การสร้างรายงาน SARIF นั้นขาดฟังก์ชั่นและรู้สึกว่ามันรับประกันว่าจะถูกย้ายออกไปยังโครงการของตัวเอง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SARIF คุณสามารถเยี่ยมชมเว็บไซต์ Oasis Open
เพิ่มการนำเข้าเพื่อ go get github.com/owenrumney/go-sarif/sarif
มีหลายวิธีในการโหลดเนื้อหาของรายงาน Sarif
sarif.Open ใช้เส้นทางไฟล์และโหลด sarif จากตำแหน่งนั้น ส่งคืนรายงานและข้อผิดพลาดใด ๆ ที่เกี่ยวข้อง
sarif.FromBytes ใช้ส่วนหนึ่งของไบต์และส่งคืนรายงานและข้อผิดพลาดใด ๆ ที่เกี่ยวข้อง
sarif.FromString ใช้สตริงของเนื้อหา SARIF และส่งคืนรายงานและข้อผิดพลาดใด ๆ ที่เกี่ยวข้อง
การสร้างรายงาน SARIF ใหม่ทำได้โดยผ่านเวอร์ชันซึ่งรองรับเพียงอย่างเดียวในขณะนี้คือ 2.1.0
สำหรับตัวอย่างโดยละเอียดตรวจสอบตัวอย่างโฟลเดอร์ตัวอย่าง/main.go