Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

windowPostMessageTransport throws when an unrelated postMessage has null data

Aperta Adatta ai principianti
#108 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@omerbek ci sta già lavorando.

Dal 25/8/2026.

  • #109 di @omerbek — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
74/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
api, frontend

Direzione di ricerca

Trova l’implementazione di getWindowPostMessageTransport e ispeziona il message listener installato da connect(). Riproduci il problema con un message event il cui data è null o undefined, quindi verifica che i payload non oggetto vengano ignorati, mentre la gestione esistente di target, stream, origin e dei messaggi MetaMask rimanga invariata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

What happened?

getWindowPostMessageTransport().connect() installs a global window.addEventListener('message', ...) listener. That listener receives every postMessage on the page, including messages sent by unrelated scripts or iframes.

The current listener destructures event.data before validating it:

const { target, data } = event.data;

If another page script sends a valid postMessage with null or undefined data, this throws a TypeError before the listener can ignore the unrelated message.

Minimal reproduction

After connect() has registered the message listener, dispatching a message shaped like this is enough to trigger the crash:

messageHandler({
  data: null,
  origin: location.origin,
} as MessageEvent);

Expected: unrelated/non-object message payloads are ignored, the same as wrong target/stream/origin messages.

Actual: the listener throws while destructuring event.data.

Suggested fix

Add a small guard before destructuring:

if (!event.data || typeof event.data !== 'object') {
  return;
}

This keeps the existing MetaMask message handling unchanged while preventing unrelated page messages from surfacing avoidable listener errors.

Lingua principale
TypeScript
Stelle
1
Fork
4
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.