2016-07-25 9 views
0

Mein node.js-Server erwartet, dass ein mit Zeichenfolgen versehenes JSON-Objekt von einem nicht authentifizierten (nicht vertrauenswürdigen) Client empfangen wird.Wie kann man Json-Objekte, die durch Websockets kommen, sicher parsen?

Der Server verwendet JSON.parse die Daten zu verarbeiten. ist es möglich, "Drohungen und Manipulationen" innerhalb der JOSN-Daten aus dem Websocket zu injizieren?

Gibt es Sicherheitsvorkehrungen?

ist es etwas wie "htmlspecialchars() in PHP" in dem JavaScript-Parsing?

Server:

wsBoss = new WSServer(portboss); 
wsBoss.on('connection', function (socket) { 
console.log('connected to boss'); 
socket.on('message', function (msg) { 
    console.log(JSON.parse(msg).topGeo[0]); 
    var msgsms="HI"; 
    socket.send(msgsms); 
}); 

Auftraggeber:

var data={"topGeo":topGeo, 
      "bottomGeo":bottomGeo, 
      "concLoad":concLoad} 
console.log(topGeo,bottomGeo,depth,generalLoad,concLoad,intervLoad,mode,joistType,units); 
websocket.send(JSON.stringify(data)); 

Antwort

0

Hier sind einige Vorschläge:

  1. Limit-Datenmenge von Ihrem Server lesen DoS-Angriffe zu verhindern (via aus Speicherfehler).
  2. Beschränken Sie die Anzahl der Anfragen, Drosselung Eingabe DoS zu verhindern (über die Handhabung zu viele falsche/missformierte Anfragen).
  3. Verwenden Sie den strikten JSON-Validator, um fehlerhafte Daten zu vermeiden. is-my-json-valid bietet eine robuste Validierung basierend auf JSONSchema. https://github.com/mafintosh/is-my-json-valid
0

JSON.parse selbst betrachtet seine Nutzer von den Angriffen der älteren Weisen wie eval -ling die JSON zum Schutz seiner String-Wert konvertieren in ein Objekt. Es ist jedoch immer noch wichtig, dass es die Programmautoren nicht vor unbeabsichtigten Sicherheitsproblemen in dem Code schützen kann, der die empfangenen Objekte verarbeitet. In diesem Sinne unterscheidet sich die Deserialisierung von JSON-Objekten jedoch nicht von "normalen" code-erzeugten Objekten. Darüber hinaus hat kein JavaScript-Interpreter absolute Sicherheit, da von Zeit zu Zeit Probleme auftreten. Daher besteht die Gefahr, dass jemand in der V8-Implementierung JSON.parse ein Sicherheitsproblem findet. Dennoch ist es höchst unwahrscheinlich, dass ein benutzerdefinierter selbst geschriebener Parsing-Algorithmus sicherer ist als ein bewährter Open-Source-Algorithmus, der in Millionen von Installationen eingesetzt wird.

+0

Vielen Dank für Ihre Antwort. –