Quét tĩnh · Static grep
- Đọc chuỗi HTML và JavaScript trên mã nguồn.
- Hữu ích để tìm dấu hiệu script và cấu hình được khai báo sẵn.
- Không quan sát được tracker nạp muộn qua GTM, App Embeds hoặc React SPA.
Quét tĩnh mã nguồn và quét động bằng trình duyệt thật (3 phiên desktop, thêm 1 phiên mobile) bổ sung cho nhau. Phát hiện network beacon và cookie bên thứ ba trước/sau khi khách nhấn Đồng ý. Không suy đoán — chỉ ghi nhận bằng chứng kỹ thuật.
$ python scripts/dynamic_scan.py https://example.vn
Network request
Theo dõi thực tế
Cookie
Trước / sau consent
Desktop
1366px
Mobile
390px
Cách đo lường
Đọc mã nguồn giúp tìm dấu hiệu. Trình duyệt thật cho biết chính xác website làm gì khi tải và khi người dùng chọn.
Case study ẩn danh · Một website B2B
Video YouTube nhúng trên trang giới thiệu vẫn tải tài nguyên bên thứ ba và đặt cookie dù khách đã từ chối banner. So sánh trước và sau khi chuyển sang YouTube Facade.
Iframe tải dù khách đã từ chối.
YouTube iframe thông thường phát sinh request đến miền Google và cookie theo dõi trước khi khách xem video.
Chỉ nạp video khi khách chủ động.
Trang tải ảnh poster cùng miền. Sau khi khách bấm “Xem video”, facade mới nạp iframe qua youtube-nocookie.com.
Log trên trang là bản rút gọn để minh họa, không phải kết quả quét trực tiếp. Tab “Sau khi sửa” là kết quả mong đợi khi áp dụng mẫu youtube-facade.html; hãy chạy lại dynamic_scan.py để xác nhận trên website của bạn.
Nền tảng hỗ trợ
Hướng dẫn khắc phục theo cách website được xây dựng — với đoạn mã tham khảo để đội ngũ kỹ thuật bắt đầu.
Customer Privacy API
Dùng cài đặt quyền riêng tư gốc của Shopify, giới hạn vùng Việt Nam và kiểm tra cách consent truyền tới ứng dụng cùng kênh quảng cáo.
Hướng dẫn: references/platforms/shopify.md
gtag('consent', 'default', {
analytics_storage: 'denied', ad_storage: 'denied', …
});
document.addEventListener('visitorConsentCollected', function (e) {
apply(e.detail.analyticsAllowed, e.detail.marketingAllowed);
});
WooCommerce · plugin consent
Đối chiếu cài đặt Complianz hoặc CookieYes với request thực tế; ưu tiên trì hoãn video nhúng và form thông tin khách hàng.
<div class="yt-facade" data-id="VIDEO_ID">
<button type="button" aria-label="Phát video">▶</button>
</div>
Next.js · PHP · Laravel · HTML tĩnh
Mẫu consent nhẹ để đội phát triển ghép vào ứng dụng và kiểm tra rằng form báo giá chỉ lưu thông tin sau khi có lựa chọn rõ ràng.
Hướng dẫn: references/platforms/custom-code.md
gtag('consent', 'default', {
ad_storage: 'denied', ad_user_data: 'denied',
ad_personalization: 'denied', analytics_storage: 'denied'
});
// GA4/GTM/Pixel chỉ được nạp sau khi khách bấm Chấp nhận
Cách bắt đầu
Công cụ miễn phí theo giấy phép MIT. Cần Python 3.10+ và Git; chạy được trên Windows, macOS, Linux.
git clone https://github.com/gonostudy305/vn-law-guard.git
cd vn-law-guard
python -m pip install -r requirements.txt
python -m playwright install chromium
python scripts/dynamic_scan.py https://example.vn --out ./report
Thêm --lang en để có báo cáo tiếng Anh. Dùng như AI skill cho Claude Code hoặc Antigravity: xem README.
Mã nguồn mở & ghi nhận upstream
Checklist pháp lý trong thư mục references/law/ giữ nguyên từ dự án vn-law-check của tác giả mhfed, theo giấy phép MIT. Cập nhật từ upstream bằng scripts/sync_upstream.sh.