สวัสดีครับ
ทุกครั้งที่ต้องส่งโปรเจกต์ให้ AI Agent แล้วต้องมานั่งลบข้อมูลสำคัญทีละรายการด้วยตัวเอง มันยุ่งยากเกินไป ผมเลยลองสร้างเครื่องมืออัตโนมัติที่ช่วยปกปิดข้อมูลได้ด้วยคำสั่งเดียวขึ้นมาเอง
ก่อนจะส่งโปรเจกต์เดิมให้ AI Agent เครื่องมือนี้จะช่วยป้องกันล่วงหน้าไม่ให้ API key, ข้อมูลรับรอง, ใบรับรอง และข้อมูลลับอื่น ๆ ที่ hardcode อยู่ในซอร์สโค้ดรั่วไหลออกไปภายนอก

  • สตริงต้องสงสัยที่ค้นพบด้วย regex จะถูกตรวจสอบซ้ำรอบที่สองผ่านการวิเคราะห์ไวยากรณ์ ว่าอยู่ภายใน "string literal" ของโค้ดจริงหรือไม่

  • ไม่ใช่แค่การ mask แบบง่าย ๆ แต่เป็นการแปลงโค้ดอัตโนมัติ (Auto-fix)
    ย้ายซีเคร็ตที่ hardcode ไว้ไปเก็บในไฟล์ .env แล้วแทนที่ในซอร์สโค้ดให้โดยอัตโนมัติตามแต่ละภาษา เช่น process.env.API_KEY, System.getenv(), @Value เป็นต้น

  • การจัดการไฟล์แบบปรับให้เหมาะกับแต่ละแพลตฟอร์ม:
    ไม่ใช่แค่ซอร์สโค้ดทั่วไปเท่านั้น แต่ยังพยายามแยกซีเคร็ตในไฟล์ build/setting อย่างแม่นยำผ่าน parser เฉพาะของแต่ละประเภทด้วย เช่น Info.plist ของ iOS, build.gradle ของ Android, pubspec.yaml ของ Flutter, application.yml ของ Spring เป็นต้น

ฟังก์ชันหลักมีดังนี้

แยกซีเคร็ตอย่างคีย์หรือ URL ที่ hardcode ไว้ไปไว้ใน .env และแปลงโค้ดให้อัตโนมัติ

blinder blind   
  
- String apiKey = "sk_live_abc123..."      # Before  
+ String apiKey = BuildConfig.STRIPE_KEY   # After (빌드 가능)  
  

สร้างโปรเจกต์แบบ read only สำหรับ AI Agent

blinder mask  
  
- apiKey: "AIzaSy9xK2mP3rT..."       # Before  
+ apiKey: "__BLINDER_VAR__FIREBASE_API_KEY"  # After (빌드 불가)  

มีให้ใช้งาน

สามารถติดตั้งแบบ global ในสภาพแวดล้อม Node.js แล้วทดลองใช้งานได้ทันที

Bash
npm install -g github:YellowC-137/Blinder

ขณะนี้รองรับสภาพแวดล้อม iOS, Android, Flutter, Node.js, React, Spring Boot และ Ruby และกำลังเพิ่มแพลตฟอร์มอย่างต่อเนื่อง

เนื่องจากยังเป็นโอเพนซอร์สในระยะเริ่มต้น จึงอาจยังมีจุดที่ไม่สมบูรณ์อยู่บ้าง
ยินดีรับฟีดแบ็กจากทุกท่านครับ ขอบคุณมาก!

GitHub Repo: https://github.com/YellowC-137/Blinder

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น