New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

pdpa-guard

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pdpa-guard

PDPA compliance scanner for vibe-coded apps (Firebase/Supabase region, security rules, PII fields, cross-border subprocessors). Run with npx before you deploy.

latest
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

pdpa-guard

สแกนโปรเจกต์ vibe-coded (Firebase / Supabase / vanilla JS) หา risk ตาม พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (PDPA) ก่อนกด deploy — ไม่ต้อง install ถาวร รันผ่าน npx ได้เลย

ทำมาเพราะ AI coding assistant (รวมถึง Claude) จะ focus ที่ "ทำให้โค้ดรันได้" เป็นหลัก และมักข้ามเรื่อง region, security rules, PII field ไปโดยไม่ตั้งใจ — เครื่องมือนี้คือ safety net ชั้นสุดท้ายก่อน production

ใช้งาน

npx pdpa-guard .

จะได้ไฟล์ pdpa-report.md สรุปปัญหาทั้งหมด แยกตามความรุนแรง

Options

npx pdpa-guard <path>              # สแกนโฟลเดอร์ที่ระบุ (default: โฟลเดอร์ปัจจุบัน)
npx pdpa-guard . -o report.md      # เปลี่ยนชื่อไฟล์ output
npx pdpa-guard . --fail-on high    # exit code 1 ถ้าเจอ severity >= high (ใช้กับ CI/pre-commit hook)
npx pdpa-guard . --json            # output เป็น JSON แทน markdown

ใช้เป็น pre-deploy hook

เพิ่มใน package.json:

{
  "scripts": {
    "predeploy": "npx pdpa-guard . --fail-on critical"
  }
}

จะบล็อค deploy อัตโนมัติถ้าเจอ security rule เปิดกว้างแบบ allow read, write: if true;

สแกนอะไรบ้าง

หมวดเช็คอะไรอ้างอิงกฎหมาย
Cloud RegionFirebase Realtime DB URL, Firestore locationId, Cloud Functions region — เตือนถ้าไม่ใช่ region เอเชียPDPA มาตรา 28-29 (โอนข้อมูลข้ามพรมแดน)
Security Rulesfirestore.rules, storage.rules, database.rules.json ที่เปิดกว้างแบบ if true หรือไม่มี auth checkความเสี่ยงข้อมูลรั่วไหล — ปรับสูงสุด 5 ล้านบาท
PII Fieldsgrep หา field name ที่เข้าข่ายข้อมูลส่วนบุคคล (ทั่วไป/อ่อนไหว/พิกัด/การเงิน/เด็ก) ทั้งไทยและอังกฤษPDPA มาตรา 6, 20, 24, 26
Subprocessorsthird-party SDK ที่ส่งข้อมูลออกนอกประเทศ (Sentry, Gemini, OpenAI, Analytics ฯลฯ)ต้องระบุใน Privacy Policy

ข้อจำกัด (อ่านก่อนใช้จริง)

  • นี่คือ static scanner ไม่ใช่ legal audit — จับ pattern ที่พบบ่อยได้ แต่ไม่แทนที่ที่ปรึกษากฎหมาย/DPO
  • เช็ค region ได้เฉพาะที่ hardcode ไว้ในโค้ด/config — ถ้าตั้งผ่าน Firebase Console อย่างเดียวโดยไม่มี URL ในโค้ด จะตรวจไม่เจอ
  • PII keyword list เป็น heuristic — field ชื่อแปลกที่ไม่อยู่ใน list จะหลุดสแกน ควรเสริม rules/pii-keywords.json ตามโดเมนของแอปตัวเอง
  • ไม่เช็ค data flow จริง (field ที่เก็บแล้วส่งไปไหนต่อ) — เช็คแค่ "มี field นี้อยู่ในโค้ด"
  • Consent flow, Privacy Policy, Data Subject Rights ต้องทำเองตาม checklist ท้าย report

แก้ไข PII keyword list

เพิ่ม/ลบ keyword ได้ที่ rules/pii-keywords.json — แบ่งเป็น 5 หมวด: general, sensitive, location, financial, child แต่ละหมวดมี severity ต่างกัน

Subprocessor ที่รู้จัก

ดูรายชื่อทั้งหมดที่ lib/scanners/subprocessor-check.js — ครอบคลุม Firebase, Supabase, AWS, Clerk, Auth0, MongoDB Atlas, LINE API, Google Sheets, Omise/2C2P และอื่นๆ เพิ่มรายการใหม่ได้โดยแก้ array KNOWN_SUBPROCESSORS ในไฟล์นั้น

รันใน CI (GitHub Actions)

Copy .github/workflows/pdpa-check.yml ไปไว้ใน repo ของตัวเอง จะรันสแกนอัตโนมัติทุก PR/push และบล็อคถ้าเจอปัญหาระดับ critical พร้อม upload รายงานเป็น artifact ให้ดูย้อนหลังได้

ทดสอบ

npm test

ใช้ Node.js built-in test runner (node --test) ไม่มี dependency ภายนอก มี fixture โปรเจกต์จำลอง (มีปัญหา / ไม่มีปัญหา) อยู่ใน test/fixtures/

Publish / แจกต่อ

ดูขั้นตอนเต็มที่ PUBLISHING.md

License

MIT — เอาไปแจกต่อ แก้ไข ปรับใช้ได้อิสระ ดู LICENSE

Keywords

pdpa

FAQs

Package last updated on 03 Jul 2026

Related posts