[PYTHON] Umgang mit Zeichenketten in der JSON-Kommunikation

Japanisches Handbuch in der JSON-Kommunikation

Aufgrund von JSON-Spezifikationen muss Japanisch kein Unicode-Escape sein Wenn Sie kein Unicode-Escape verwenden, ist dies nicht gut für Vertraulichkeitsverluste, aber nicht gut, da es dekodiert werden kann, wenn es dekodiert wird. Trotzdem ist Sicherheit wie XSS in Ordnung, da Sie die Steuerzeichenfolge mit der Markierung \ umgehen können (→ Was meinen Sie?)

↓ Das meinst du. Cross-Site-Scripting

Durch Registrieren der im Skript-Tag enthaltenen Daten können die Daten als Skript-Tag im Browser gelesen und ein ungültiges Skript ausgeführt werden. Daher muss die Steuerzeichenfolge maskiert werden.

Python japanisches Unicode-Escape-Problem

json standard library

Die Japanisierung kann durch "json.dumps (str, sure_ascii = False)" realisiert werden.

Wenn> sure_ascii true ist (der Standardwert), garantiert die Ausgabe, dass alle eingegebenen Nicht-ASCII-Zeichen maskiert werden. Wenn sure_ascii false ist, werden diese Zeichen unverändert gedruckt.

Wenn jedoch die obige Implementierung verwendet wird, wird die Steuerzeichenfolge nicht maskiert, wodurch eine Sicherheitsanfälligkeit entsteht.

MUST be escaped JSON-Spezifikationen Steuerzeichencode

the characters MUST be escaped: ※quotation mark, reverse solidus, and the control characters (U+0000 through U+001F).

No. String
1. "(doppeltes Zitat)
2. (Backslash)
3. Null
4. Beginn der Überschrift
5. Start von TeXt (Textstart)
6. Ende von TeXt
7. Ende der Übertragung
8. Anfrage (Anfrage)
9. ACKnowledge (positive Antwort)
10. Glocke
11. Rückraum
12. Horizontale Tabellierung
13. Zeilenvorschub
14. Vertikale Tabellierung
15. Formular-Feed (Seitenumbruch)
16. Wagenrücklauf
17. Herausschalten
18. Shift In
19. Datenverbindungs-Escape (Übertragungssteuerungserweiterung)
20. Gerätesteuerung 1
21. Gerätesteuerung 2
22. Gerätesteuerung 3
23. Gerätesteuerung 4
24. Negatives Wissen
25. SYNchroner Leerlauf
26. Ende des Übertragungsblocks
27. Ende des Übertragungsblocks
28. Stornieren
29. Ende des Mediums
30. Ersatz
31. ESCape (erweitert)
32. Dateitrennzeichen
33. Gruppentrennzeichen
34. Aufzeichnungstrennzeichen
35. Gerätetrenner

Recommended Posts

Umgang mit Zeichenketten in der JSON-Kommunikation
Erstellen von Sphinx, das mit Markdown geschrieben werden kann
Grundlegende Algorithmen, die bei Wettkampfprofis eingesetzt werden können
ANTs Bildregistrierung, die in 5 Minuten verwendet werden kann
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
[Django] Über Benutzer, die für Vorlagen verwendet werden können
Goroutine (parallele Steuerung), die im Feld eingesetzt werden kann
Goroutine, die im Feld verwendet werden kann (errgroup.Group Edition)
Skripte, die bei der Verwendung von Bottle in Python verwendet werden können
Bewertungsindex, der für GridSearchCV von sklearn angegeben werden kann
Ich habe es gemacht, weil ich JSON-Daten möchte, die in Demos und Prototypen frei verwendet werden können
Über psd-tools, eine Bibliothek, die psd-Dateien in Python verarbeiten kann
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Ein Timer (Ticker), der im Feld verwendet werden kann (kann überall verwendet werden)
Zusammenfassung der Standardeingabe von Python, die in Competition Pro verwendet werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Bestätigung, dass rkhunter installiert werden kann
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Zusammenfassung der AtCoder C-Probleme, die in der Mathematik der High School gelöst werden können
Serverloser LINE-Bot, der in 2 Stunden ausgeführt werden kann (Erfassung der Quellkennung)
Maximale Anzahl von Funktionsparametern, die in jeder Sprache definiert werden können
Eine Geschichte, die Heroku, die in 5 Minuten gemacht werden kann, tatsächlich 3 Tage dauerte