build(deps): Bump firebase from 12.3.0 to 12.14.0#7
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
5ddccea to
bf6c28c
Compare
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 12.3.0 to 12.14.0. - [Release notes](https://github.com/firebase/firebase-js-sdk/releases) - [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@12.3.0...firebase@12.14.0) --- updated-dependencies: - dependency-name: firebase dependency-version: 12.14.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
bf6c28c to
43b3035
Compare
miningtheblocks
added a commit
that referenced
this pull request
Jun 17, 2026
…base, Cache-Control, CSP defensa) Cierra 4 HIGH/MEDIUM del Agente #7 Audit Round 2. Cambios de texto en HTML/JSON sin refactor de comportamiento — risk bajo, ROI alto. 1. verifyGemCode CORS: wildcard `*` → allowlist explícito. Pre-fix (Agente #7 MED): cualquier origen podía hacer GET a verifyGemCode y enumerar códigos de gemas. El rate-limit 30/min/IP mitigaba bulk-enum pero la inconsistencia con submitGemClaim (que sí usa setRestrictedCorsHeaders) era reportable. Fix: setCorsHeaders(res) → setRestrictedCorsHeaders(req, res). Ahora solo miningtheblocks.com / www / miningtheblocks.github.io pueden hacer el call. Browser/server-to-server desde otro origen → CORS error. 2. SRI (Subresource Integrity) en Firebase SDK de docs/index.html. Pre-fix (Agente #7 HIGH-3): <script src="gstatic.../firebase-X.js"> sin integrity. gstatic.com es Google CDN (raro pero supply chain attacks documentados en otros CDNs como polyfill.io). Para una página que tramita gem claims hasta $100k, integrity verification es defense in depth real. Fix: integrity="sha384-..." + crossorigin="anonymous" en los 2 script tags de Firebase 10.13.2 (app-compat + auth-compat). Hashes computados con `curl URL | openssl dgst -sha384 -binary | openssl base64 -A`. IMPORTANTE: si bumpean SDK Firebase, hay que recomputar los hashes. Comentario inline lo recuerda. 3. Cache-Control: no-store para verify.html. Pre-fix (Agente #7 MEDIUM): verify.html maneja oobCode (token de reset de 1h valid). Sin Cache-Control, el browser cacheaba la página con el token en URL; otro user en el mismo device podía abrirla del back button + reset password ajeno. Fix: header específico para verify.html en firebase.json: `Cache-Control: no-store, no-cache, must-revalidate, private`. 4. Meta CSP defensiva en verify.html. Pre-fix (Agente #7 MEDIUM): verify.html NO tiene meta CSP, depende 100% del header HTTP firebase.json. Si por error un deploy pierde el header (config diff, regla de hosting equivocada), no hay CSP en la página. Fix: meta http-equiv="Content-Security-Policy" con el MISMO contenido del header. Defense in depth — los browsers aplican la POLÍTICA MÁS ESTRICTA si ambos están presentes. 5. Extras en firebase.json: - Permissions-Policy expandido: payment=(), usb=(), browsing-topics=(), interest-cohort=(), accelerometer/gyroscope/magnetometer/midi/serial/ bluetooth=(). Bloquea APIs sensibles que la web NO usa. - CSP tightening: agregamos base-uri, form-action, object-src none, upgrade-insecure-requests (defense in depth contra base tag injection + insecure form action). DEFERRED (requieren browser testing — siguiente iteración): - HIGH-2: unsafe-inline removal en docs/index.html (refactor: extraer 7 onclick + 250 líneas de <script> inline a archivo externo). - HIGH-1: sandbox iframe para docs/adpick.html (riesgo de romper ad pipeline → revenue). Tests: 24/24 helpers pasan. firebase.json JSON valid. index.js parsea OK. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks
added a commit
that referenced
this pull request
Jun 17, 2026
… EN privacy disclosure Cierra 4 hallazgos MED/LOW pendientes — todo cambios de texto/atributos sin lógica nueva. 1. ChainHistoryScreen + ActivityScreen a11y (Agente #10 MED-10-43). Cada uno tenía 1-2 TouchableOpacity sin labels (back button, report button). accessibilityRole="button" + accessibilityLabel + hitSlop 8. Cierra el último gap a11y del cliente — todos los screens con interactividad ya están cubiertos. DynamicCube201 (cubo 3D) sigue sin a11y por naturaleza (rendering GL no es accesible vía SR). 2. verify.html default-DENY en errores no enumerados (Agente #7 LOW). Pre-fix (CRIT-24 documentado como "default-deny" pero código era default-success): el else de codes desconocidos llamaba showSuccess. Si Google agrega nuevo error code en el futuro (TOKEN_REVOKED, QUOTA_EXCEEDED, etc.) el user veía "verificado" cuando no lo estaba. Fix: - data.error.message no reconocido → showError genérico con el code truncado a 32 chars (para diagnóstico sin XSS). - Respuesta SIN .error pero sin shape esperada (email/localId/kind) → showError "respuesta inesperada". - Solo respuesta con shape correcta y SIN .error → showSuccess. 3. privacy.html EN section: agrega Cloudflare + GitHub + SCC disclosure (Agente #10 HIGH-10-36). Commit E agregó la sección ES pero la EN quedó con la lista vieja (solo Firebase + Polygon + Pinata). Ahora ambas secciones están alineadas con todos los sub-procesadores + SCC clause para UE→USA. Aplicado en docs/privacy.html Y public/privacy.html. Tests: parse OK. helpers OK. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks
added a commit
that referenced
this pull request
Jun 17, 2026
Cierra Agente #7 HIGH-2 (último gran refactor del web hardening). Pre-fix: CSP del docs/index.html declaraba políticas exhaustivas pero script-src incluía 'unsafe-inline' + el archivo tenía: - 1 bloque <script> inline de 258 LOC (toda la lógica de la página). - 7 onclick handlers en buttons (setLang × 2, copyRefCode, verifyCode, doLogin, submitClaim, acceptAge). - 2 onchange handlers en checkboxes (updateAgeBtn × 2). Con 'unsafe-inline' la CSP es funcionalmente DECORATIVA contra XSS: la declaración script-src 'self' https://www.gstatic.com no estaba siendo enforced para nada inline. Para una página que tramita gem claims hasta $100k, esto era un gap real. Refactor: 1. docs/js/app.js (nuevo, ~280 LOC): - 100% del contenido del <script> inline (Firebase init, GEM_NAMES, GEM_PRIZES, ERRORS dicts, setLang/detectReferral/copyRefCode/verifyCode/ doLogin/submitClaim/updateAgeBtn/acceptAge + helpers). - Sin cambios funcionales (lógica idéntica). - + wireEventDelegation() que registra: * Click handlers via [data-action="X"] + delegación al body. * setLang especial: [data-action="setLang"][data-lang="es|en"]. * Change handlers directos sobre #check18 y #checkTC para updateAgeBtn. 2. docs/index.html cambios: - 9 atributos inline → declarativos: * onclick="setLang('es')" → data-action="setLang" data-lang="es" * onclick="setLang('en')" → data-action="setLang" data-lang="en" * onclick="copyRefCode()" → data-action="copyRefCode" * onclick="verifyCode()" → data-action="verifyCode" * onclick="doLogin()" → data-action="doLogin" * onclick="submitClaim()" → data-action="submitClaim" * onclick="acceptAge()" → data-action="acceptAge" * onchange="updateAgeBtn()" × 2 → (removido; listener en app.js by id). - <script>...258 LOC...</script> → <script src="js/app.js" defer></script> - CSP script-src: removido 'unsafe-inline'. - Mantenido style-src 'unsafe-inline' (hay style="..." attribute usage en algunos botones; refactor a classes queda como P3 follow-up; risk bajo porque style attrs no permiten JS execution). Archivo total reducido de 952 → 699 líneas. CSP ahora hace su trabajo. TODO post-deploy (operacional): probar en browser que el flow completo funciona (verifyCode → doLogin → submitClaim → ageGate). Si algo se rompe, el rollback es revertir este commit + el style-src cambio se puede hacer en isolation después. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Author
|
Superseded by #21. |
miningtheblocks
added a commit
that referenced
this pull request
Jun 18, 2026
…en CI Tier B del backlog del audit Round 2: 1. CRIT-10-04 follow-up + Agente #10 HIGH-10-36 — privacy.html actualizada: - Removidos los 4 mentions obsoletos a Google AdMob (el SDK react-native-google-mobile-ads fue removido en Commit Q; mantenerlo en privacy era misleading). - Sección 1.6 (Publicidad) reescrita: la app NO usa native ad SDKs. Los ads viven en docs/adpick.html abierto por el user. La red de publicidad (effectivecpmnetwork) está aislada en iframe sandbox en subdominio separado (ads.miningtheblocks.com) sin acceso a app data. AD_ID NO declarado por la app. - Sub-procesadores ampliados: Sentry (EU/Frankfurt), Better Stack, Filebase (mirror IPFS). Todos con disclosure de jurisdicción de datos y referencia a SCC cuando aplica para transferencias UE→USA. - Sección 7 (Minors) limpiada de referencias COPPA-AdMob. - Versión EN paralela actualizada también. 2. Agente #7 P3 + Agente #11 — SBOM CycloneDX en CI: - Nuevo job en .github/workflows/ci.yml que genera SBOM (Software Bill of Materials — inventario formal de dependencias en formato CycloneDX estándar OWASP) en cada push. - 2 SBOMs por run: functions/ + repo root. - Tool: @cyclonedx/cdxgen (npx, sin install permanente). - Artifacts retenidos 90 días para tracking de CVE futuros + auditorías. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps firebase from 12.3.0 to 12.14.0.
Release notes
Sourced from firebase's releases.
... (truncated)
Commits
62a4653Version Packages (#10004)82dd7edMerge main into releasebd08caefeat(ai): Update tags to mark hybrid inference features as GA (#9926)f0752a0feat(ai)!: Add explicitinitializeDeviceModel()method when using hybrid (#...cbb1953implement onSubChange for FID-based registration (#9996)85f6f4efix(firestore): improved robustness and logging in query listen stream creati...4d3f71afix(remoteconfig): Stopping last running experiment must call updateActiveExp...d675580fix(app-check): Fix getLimitedUseToken() (#9987)3b337b9Feat/messaging api series (#9917)eefab3efix(changelog-generator): fix postinstall build failure (#9948)