Reject invalid control frames when building output
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 76/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- python
- Bereich
- networking
Rechercherichtung
Beginne bei Frame.build() und verfolge, wie PingControlMessage.single() und Message.fragment(..., last=False) dorthin gelangen; vergleiche diese Pfade mit der Validierung von control frames im stream parser. Die Arbeit ist abgeschlossen, wenn übergroße oder fragmentierte ping-, pong- und close-frames beim Erstellen zurückgewiesen werden, während gültige control frames weiterhin normal serialisiert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Frame.build() validates opcodes and payload lengths, but does not enforce two WebSocket control-frame rules: payloads must be 125 bytes or fewer, and FIN must be set.
For example, PingControlMessage(b"x" * 126).single() emits a 126-byte ping frame. The stream parser rejects a received control frame over 125 bytes, so ws4py can emit a frame that ws4py itself rejects. Message.fragment(..., last=False) can also emit a fragmented ping, pong, or close frame.
Please validate these control-frame constraints in the frame builder so the message helpers cannot serialize invalid control frames.
- Vorherrschende Sprache
- Python
- Sterne
- 1.1k
- Forks
- 285
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Lawouach/WebSocket-for-Python
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
Lawouach/WebSocket-for-Python#308 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Lawouach/WebSocket-for-Python#300 ·
-
This project is not well maintained so be very very very patient!Evtl. wieder frei @Lawouach hat das vor 683 Tagen übernommen, und es ist kein Pull Request offen. Offenquestion
Lawouach/WebSocket-for-Python#297 · 2 Kommentare · 1 zugewiesene Person ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 20/100
Lawouach/WebSocket-for-Python#296 ·
-
Make the codes python 3 compatibleEvtl. wieder frei @auvipy hat das vor 1089 Tagen übernommen, und es ist kein Pull Request offen. Offen
Lawouach/WebSocket-for-Python#280 · 1 Kommentar · 1 zugewiesene Person ·
Alle Issues in Lawouach/WebSocket-for-Python
Ähnliche Issues
-
question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
conda-forge/vc-feedstock#132 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
limitlessprojects/Go-Hybrid#3342 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
UKGovernmentBEIS/inspect_ai#6268 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
LSSTDESC/rail_sompz#42 ·
-
All tests fail with 'EXITED with status 3' on pytest 9.2.0 (TestReport._id is not marshallable)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
pytest-dev/pytest-forked#113 ·