vtrc-application-front — Scorecard
Legend:
- Critical = active security/data-loss/availability risk
- High = correctness/maintainability hazard, real impact
- Medium = friction/hygiene, ยังไม่เป็นอันตราย
repo นี้ (branch: master) เป็น static download page — ความเสี่ยงหลักคือ binary ใน git และค่าเวอร์ชันที่ hardcode ไม่ sync
Scorecard table
| ID | Severity | คำอธิบาย | หลักฐาน (file:line) | การแก้ไข |
|---|---|---|---|---|
| LEG-FRONT-01 | High | VTRC.ipa (~12.3 MB) ถูก commit ใน git — ทำให้ history โตถาวร และ binary กระจายทุกครั้งที่ clone | VTRC.ipa ใน git ls-files; ขนาดไฟล์บน disk 12,855,060 bytes | ย้าย IPA ไป artifact storage / CDN; ลบออกจาก git history; ใส่ *.ipa ใน .gitignore |
| QUAL-FRONT-01 | Medium | เวอร์ชันบน UI hardcode 1.9.12 ในขณะที่ VTRC.plist bundle-version เป็น 1.0 — ไม่ sync | index.html:51, VTRC.plist:21-22 | gen จาก release pipeline หรือแหล่งเดียว |
| QUAL-FRONT-02 | Medium | QR image assets มีใน repo แต่ถูก comment ปิดใน HTML — dead assets | index.html:70-73; image/qrcode_*.png, QR_downloadLandingPage.png | ลบ asset ที่ไม่ใช้ หรือเปิดใช้จริง |
| QUAL-FRONT-03 | Medium | .gitignore ไม่ exclude *.ipa (มีแค่ *.app / *.exe ฯลฯ) | .gitignore | เพิ่ม *.ipa |
| OBS-FRONT-01 | Medium | ไม่มีวิธีใน repo ที่ยืนยันว่า IPA ใน git ตรงกับ URL ใน plist บน server (https://vtrc.redcross.or.th/adn/VTRC.ipa) | VTRC.plist:14 vs committed VTRC.ipa | checksum / release checklist |
Binary inventory (sizes on disk)
| Path | Tracked? | Size (bytes) |
|---|---|---|
VTRC.ipa | ใช่ | 12,855,060 (~12.3 MB) |
storage/pdf/manual.pdf | ใช่ | 1,560,320 (~1.5 MB) |
.apk | ไม่มีใน repo | — |
Android ไป Play Store เท่านั้น — ไม่มี APK ใน git (index.html:104-106)
สิ่งที่ไม่ใช่ปัญหาของ repo นี้
| หัวข้อ | เหตุผล |
|---|---|
| ไม่มี XSS จาก form | ไม่มี form input |
| ไม่มี API secret ใน HTML | ไม่มี API call |
| Cordova debt | ไม่ใช่ Cordova — เป็น static page |
Cross-ref
- File map → 01-repository-map
- Install flow → 02-distribution-flow
Release checklist (manual — ไม่มี CI ใน repo)
- อัปเดต
VTRC.ipaบน server ที่/adn/และใน git (หรือเลิก commit binary) - อัปเดตข้อความเวอร์ชันใน
index.html:51 - ตรวจว่า
VTRC.plistbundle-versionสอดคล้อง หรือยอมรับว่าเป็นคนละชั้น - ทดสอบ
getUrl()บน iOS / Android / desktop จริงใน IDE browser หรือ device - ยืนยันว่า
manual.pdfยังตรงขั้นตอน Trust ปัจจุบัน