Senden von Daten mit javascript, wie kann ich mich "schützen" oder "verschlüsseln" kann?
Bin ich gezwungen, zu senden, die Daten per GET (query-string) auf einem anderen server.
For example: http://myserver.com/blah?data=%7B%22date%22%3A%222011-03-01T23%3A46%3A43.707Z%22%2C%22str%22%3A%22test%20string%22%2C%22arr%22%3A%5B%22a%22%2C%22b%22%2C%22c%22%5D%7D
Es ist ein JSON-kodierten string. Jedoch, jemand mit einem halben Gehirn kann sehen, dass und decodieren es zu Holen Sie sich die zugrunde liegenden Daten.
- Ich verstehe, dass die query-string in der Länge begrenzte
- Ich keine Wahl haben, über die Verwendung von GET-vs PUT/POST
Gibt es eine Möglichkeit für mich, zu Kodieren eine große Menge von Daten in einer viel kürzeren Zeichenfolge entschlüsselt werden können vom server? (mit javascript)
Nehme ich HTTPS nicht wirklich beheben, da die Daten in der uri?
- Ich bin mir nicht sicher, ich verstehe die Anforderungen, aber: PUT/POST nicht keinen Unterschied machen, in Bezug auf die Sicherheit: es bedeutet nur, jemand würde mal in einem anderen Ort, um es zu sehen. Und HTTPS verschlüsselt die Verbindung, nicht einfach die Antwort.
- Ich kann nicht senden Sie eine PUT - /POST-Anforderung durch same-domain-policy-auf ajax-Anfragen. Ich bin beschränkt sich auf die Verwendung einer GET-Anforderung zum senden von Daten an meinen server codiert in der Abfrage-string.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben, Ihre Einschränkungen, die einzige option die ich sehe ist die Verwendung eines public key /private key-pair-Mädchen, wie PGP funktioniert, wo der öffentliche Schlüssel wird verwendet, um Daten zu verschlüsseln (was würden Sie dann per GET) und der private Schlüssel wird verwendet, um es zu entschlüsseln. An diesem Punkt würden Sie wahrscheinlich verlassen haben, JSON hinter sich (obwohl Sie könnte sicherlich die Daten als JSON, dann verschlüsseln Sie es, und senden das Ergebnis als Base64-codierte Zeichenfolge oder etwas). Beachten Sie, dass dies nicht schützt Sie vor falschen Nachrichten (der öffentliche Schlüssel ist öffentlich), aber es bedeutet, dass Menschen, die nicht Lesen konnte, die Daten in transit ohne den privaten Schlüssel.
HTTPS behebt -- auch werden die Daten im HTTP-header (einschließlich der URI) ist geschützt, da die ganze Verbindung geschieht über einen SSL-Kanal.
Gibt es eine Ausnahme: der host-name wird ausgesetzt, wenn der client ein proxy verwendet wird, da es im Klartext übermittelt, in der CONNECT-Anfrage.
HTTPS ist in der Tat eine Lösung zum Schutz Ihrer Daten.
Es zuerst schafft eine sichere Verbindung zum server (via TLS) mit IP-Adresse und port.
-dann werden alle HTTP-Pakete über diese Verbindung gesendet werden, sind verschlüsselt.
( Ist die Daten auch verschlüsselt in HTTPS?)
Praktische Grenze für die URL-Länge scheint etwas um die 1000 chars
( Was ist die maximale Länge einer URL in verschiedenen Browsern?)
Und es gibt durchaus ein paar von Kompressions-snippets rund um...
( Der JavaScript-Implementierung von Gzip)