tag:forum.selfhtml.org,2005:/self Daten verschlüsseln – SELFHTML-Forum 2016-12-08T07:18:36Z https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682027#m1682027 j4nk3y 2016-12-06T17:45:38Z 2016-12-06T17:45:38Z Daten verschlüsseln <p>Salve!</p> <p>Ich habe gerade einen ellenlangen Text geschrieben und dann bemerkt, das ich das erstmal selber ausprobieren sollte. Was mich zu einer anderen Frage führte, die die erstere hinfällig werden lässt, je nach Antwort.</p> <p>Ich habe ein HTML document. In diesem binde ich jQuery ein und meine datei.js.<br> In datei.js steht dann:</p> <pre><code class="block language-javascript"><span class="token function">$</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> daten <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Nun zur Frage (eigentlich vermute ich, dass die Antwort Ja ist, ich möchte nur absolut sicher gehen): Wenn ein User <code>console.log(daten)</code> in seiner Console im Browser eintippt, dann dürfte kein Ergebnis kommen, da <code>daten</code> nicht im Geltungsbereich liegt, richtig?</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682037#m1682037 Reinhard 2016-12-06T18:32:27Z 2016-12-06T18:32:27Z Daten verschlüsseln <p>Hey,</p> <blockquote> <pre><code class="block language-javascript"><span class="token function">$</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> daten <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Nun zur Frage (eigentlich vermute ich, dass die Antwort Ja ist, ich möchte nur absolut sicher gehen): Wenn ein User <code>console.log(daten)</code> in seiner Console im Browser eintippt, dann dürfte kein Ergebnis kommen, da <code>daten</code> nicht im Geltungsbereich liegt, richtig?</p> </blockquote> <p>Hättest du das nicht einfach ausprobieren können?<br> Aber damit du dir absolut sicher sein kannst, verrate ich dir, dass <code>daten</code> nicht im globalen Scope definiert wird, die Antwort also "Ja" ist. Es wird also <code class="language-js"><span class="token keyword">undefined</span></code> geloggt. <code class="language-js"><span class="token function">console</span><span class="token punctuation">(</span><span class="token string">'daten'</span> <span class="token keyword">in</span> window<span class="token punctuation">)</span></code> sollte dir ein <code class="language-js"><span class="token boolean">false</span></code> geben.</p> <p>Reinhard</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682042#m1682042 dedlfix 2016-12-06T19:40:24Z 2016-12-06T19:40:24Z Daten verschlüsseln <p>Tach!</p> <blockquote> <p>Wenn ein User <code>console.log(daten)</code> in seiner Console im Browser eintippt, dann dürfte kein Ergebnis kommen, da <code>daten</code> nicht im Geltungsbereich liegt, richtig?</p> </blockquote> <p>Jein. Wenn ich da einen Breakpoint innerhalb des Scopes der Variable daten setze, dann kann ich diese und alle anderen in diesem Scope anzeigen lassen. Wenn das nicht ginge, wären Debugger witzlos.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682049#m1682049 Rolf b 2016-12-06T22:13:01Z 2016-12-06T22:13:01Z Daten verschlüsseln <p>Wogegen genau willst Du Dich denn schützen?</p> <p>Außer der Konsole gibt es auch das Netzwerkprotokoll, und da kann der User den Inhalt von datei.js als Teil des Response-Streams einfach anschauen.</p> <p><em>Rolf</em></p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682040#m1682040 j4nk3y 2016-12-06T18:55:28Z 2016-12-06T18:55:28Z Daten verschlüsseln <p>Hey,</p> <blockquote> <p>Hättest du das nicht einfach ausprobieren können?</p> </blockquote> <p>Habe ich.</p> <blockquote> <p>Aber damit du dir absolut sicher sein kannst, verrate ich dir, dass <code>daten</code> nicht im globalen Scope definiert wird, die Antwort also "Ja" ist. Es wird also <code class="language-js"><span class="token keyword">undefined</span></code> geloggt. <code class="language-js"><span class="token function">console</span><span class="token punctuation">(</span><span class="token string">'daten'</span> <span class="token keyword">in</span> window<span class="token punctuation">)</span></code> sollte dir ein <code class="language-js"><span class="token boolean">false</span></code> geben.</p> </blockquote> <p>Eigentlich bin ich mir auch sicher das es so ist. Aber wäre dem nicht so dann müsste ich eine Umständliche Methode suchen, das gesamte Object zu verschlüsseln. Also Danke für die bestätigung!</p> <p>Gruß<br> Jo</p> <p>P.s. Sry ich hatte vergessen den Betreff zu ändern.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682046#m1682046 j4nk3y 2016-12-06T21:12:46Z 2016-12-06T21:12:46Z Daten verschlüsseln <p>Hey,</p> <blockquote> <blockquote> <p>Wenn ein User <code>console.log(daten)</code> in seiner Console im Browser eintippt, dann dürfte kein Ergebnis kommen, da <code>daten</code> nicht im Geltungsbereich liegt, richtig?</p> </blockquote> <p>Jein. Wenn ich da einen Breakpoint innerhalb des Scopes der Variable daten setze, dann kann ich diese und alle anderen in diesem Scope anzeigen lassen. Wenn das nicht ginge, wären Debugger witzlos.</p> </blockquote> <p>Aber den muss ich ja manuell setzen!? Brauchte Breakpoints noch nicht, hab da keine Ahnung.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682048#m1682048 dedlfix 2016-12-06T21:31:39Z 2016-12-06T21:31:39Z Daten verschlüsseln <p>Tach!</p> <blockquote> <blockquote> <p>Jein. Wenn ich da einen Breakpoint innerhalb des Scopes der Variable daten setze, dann kann ich diese und alle anderen in diesem Scope anzeigen lassen. Wenn das nicht ginge, wären Debugger witzlos.</p> </blockquote> <p>Aber den muss ich ja manuell setzen!? Brauchte Breakpoints noch nicht, hab da keine Ahnung.</p> </blockquote> <p>Ja klar, console.log() muss man auch manuell eingeben. Magst du dich mal genauer erklären, was du damit gemeint hast?</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682056#m1682056 j4nk3y 2016-12-07T07:16:56Z 2016-12-07T07:16:56Z Daten verschlüsseln <p>Guten morgen,</p> <blockquote> <blockquote> <p>Aber den muss ich ja manuell setzen!? Brauchte Breakpoints noch nicht, hab da keine Ahnung.</p> </blockquote> </blockquote> <blockquote> <p>Ja klar, console.log() muss man auch manuell eingeben. Magst du dich mal genauer erklären, was du damit gemeint hast?</p> </blockquote> <p>Naja, da ich erstens nicht genau was ein Breakpoint macht und auch nicht wie der befehl dazu aussieht kann ich das gar nicht genau sagen. Ich tippe einfach mal in <code>datei.js</code> irgendwo eine zeile a la <code>setBreakpoint();</code>.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682057#m1682057 j4nk3y 2016-12-07T07:22:03Z 2016-12-07T07:22:03Z Daten verschlüsseln <p>Guten Morgen,</p> <blockquote> <p>Wogegen genau willst Du Dich denn schützen?</p> </blockquote> <p>Vor dem auslesen von <code>daten</code>, da (bitte nicht über interpretieren) in <code>daten</code> auch Informationen von allen anderen Usern enthalten sind (natürlich keine sensiblen Account Daten oder ähnliches).</p> <blockquote> <p>Außer der Konsole gibt es auch das Netzwerkprotokoll, und da kann der User den Inhalt von datei.js als Teil des Response-Streams einfach anschauen.</p> </blockquote> <p>Der Inhalt von <code>datei.js</code> ist eigentlich kein Problem, nur an <code>daten</code> darf niemand dran kommen.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682058#m1682058 dedlfix 2016-12-07T07:28:45Z 2016-12-07T07:28:45Z Daten verschlüsseln <p>Tach!</p> <blockquote> <p>Naja, da ich erstens nicht genau was ein Breakpoint macht und auch nicht wie der befehl dazu aussieht kann ich das gar nicht genau sagen.</p> </blockquote> <p>Man sucht sich die entsprechende Ressource. Welche da vorhanden sind, inklusive Inline-Code, sieht man in einer Übersicht. Nun klickt man links von einer Zeile, irgendwo da wo die Zeilennummern stehen. Da erscheint dann ein Punkt oder Pfeil, und wenn die Abarbeitung an der Zeile angekommen ist, wird sie angehalten. Man kann nun schrittweise weitergehen und dabei immer durch Mausdraufhalten auf Variablen deren Inhalt sehen. Zudem gibt es die Konsole, mit der man innerhalb des aktuellen Scopes Anweisungen ausführen kann und weitere nützliche Untersuchungswerkzeuge.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682081#m1682081 Rolf b 2016-12-07T11:44:17Z 2016-12-07T11:44:17Z Daten verschlüsseln <p>Wo kommt der Inhalt von daten denn her? Doch wohl über einen irgendwie gearteten WebRequest, oder? Und den kann man im Brauser belauschen. Oder per Netzwerktrace-Tool. Wenn der User den PC kontrolliert, auf dem der Browser läuft, kannst Du das nicht verhindern.</p> <p><em>Rolf</em></p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682062#m1682062 j4nk3y 2016-12-07T08:29:21Z 2016-12-07T08:29:21Z Daten verschlüsseln <p>Moin,</p> <blockquote> <p>Man sucht sich die entsprechende Ressource. Welche da vorhanden sind, inklusive Inline-Code, sieht man in einer Übersicht. Nun klickt man links von einer Zeile, irgendwo da wo die Zeilennummern stehen. Da erscheint dann ein Punkt oder Pfeil, und wenn die Abarbeitung an der Zeile angekommen ist, wird sie angehalten. Man kann nun schrittweise weitergehen und dabei immer durch Mausdraufhalten auf Variablen deren Inhalt sehen. Zudem gibt es die Konsole, mit der man innerhalb des aktuellen Scopes Anweisungen ausführen kann und weitere nützliche Untersuchungswerkzeuge.</p> </blockquote> <p>Shit, dass heißt für jeden ist <code>daten</code> sichtbar, da er einen Breakpoint in eine Funktion setzen kann die bei z.B. Betätigung eines Buttons auslöst und sich dort <code>daten</code> ausgeben lassen kann. Dann kann ich an dieser Stelle aufhören weiter zu Programmieren.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682063#m1682063 JürgenB http://www.j-berkemeier.de 2016-12-07T08:33:13Z 2016-12-07T08:33:13Z Daten verschlüsseln <p>Hallo,</p> <blockquote> <p>Shit, dass heißt für jeden ist <code>daten</code> sichtbar, …</p> </blockquote> <p>alles, was du an den Browser auslieferst, ist für jeden erreichbar.</p> <p>Gruß<br> Jürgen</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682072#m1682072 dedlfix 2016-12-07T09:56:04Z 2016-12-07T09:56:04Z Daten verschlüsseln <p>Tach!</p> <blockquote> <p>Dann kann ich an dieser Stelle aufhören weiter zu Programmieren.</p> </blockquote> <p>Nicht unbedingt. Wenn du dein Konzept umstellen kannst, dass die geheimen Daten auf dem Server gehalten und berechnet werden und der Client nur die für ihn bestimmten Daten anzeigt, dann ist da durchaus noch eine Chance.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682067#m1682067 j4nk3y 2016-12-07T08:47:12Z 2016-12-07T08:47:12Z Daten verschlüsseln <p>Hey,</p> <blockquote> <blockquote> <p>Shit, dass heißt für jeden ist <code>daten</code> sichtbar, …</p> </blockquote> <p>alles, was du an den Browser auslieferst, ist für jeden erreichbar.</p> </blockquote> <p>Das ist solange kein Problem, wenn der User das nicht im Klartext lesen kann, also Key : Value paare von <code>daten</code>.<br> Gibt es eine Möglichkeit ein komplettes Array, wenigstens die Key's, zu verschlüsseln, sodass diese für den User nicht im Klartext erreichbar sind?</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682069#m1682069 j4nk3y 2016-12-07T09:19:19Z 2016-12-07T09:19:19Z Daten verschlüsseln <blockquote> <p>Gibt es eine Möglichkeit ein komplettes Array, wenigstens die Key's, zu verschlüsseln, sodass diese für den User nicht im Klartext erreichbar sind?</p> </blockquote> <p>Wie ich es auch drehe und wende, es gibt keine Möglichkeit. Ich habe wohl Verschlüsselungsmethoden gefunden. Aber selbst da kann man ja einfach mit <code>console.log(decrypt(daten))</code> (vereinfacht) <code>daten</code> ausgeben lassen.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682070#m1682070 JürgenB http://www.j-berkemeier.de 2016-12-07T09:46:44Z 2016-12-07T09:46:44Z Daten verschlüsseln <p>Hallo</p> <blockquote> <blockquote> <p>Gibt es eine Möglichkeit ein komplettes Array, wenigstens die Key's, zu verschlüsseln, sodass diese für den User nicht im Klartext erreichbar sind?</p> </blockquote> <p>Wie ich es auch drehe und wende, es gibt keine Möglichkeit. Ich habe wohl Verschlüsselungsmethoden gefunden. Aber selbst da kann man ja einfach mit <code>console.log(decrypt(daten))</code> (vereinfacht) <code>daten</code> ausgeben lassen.</p> </blockquote> <p>genau. Du musst den Schlüssel mitliefern. Oder willst du mit Schlüsselpaaren aus privatem und öffentlichem Schlüssel arbeiten?</p> <p>Gruß<br> Jürgen</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682071#m1682071 j4nk3y 2016-12-07T09:53:16Z 2016-12-07T09:53:16Z Daten verschlüsseln <p>Hey,</p> <blockquote> <p>genau. Du musst den Schlüssel mitliefern. Oder willst du mit Schlüsselpaaren aus privatem und öffentlichem Schlüssel arbeiten?</p> </blockquote> <p>Das "wie" ist mir eigentlich egal, Hauptsache das "wer" ist eins, nämlich mein Javascript Code und kein User. Ich glaube das bedeutet ich muss mich in C/C++ einarbeiten und selber einen Client schreiben, und das Projekt aus dem Browser nehmen.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682075#m1682075 1unitedpower 2016-12-07T10:29:59Z 2016-12-07T10:29:59Z Daten verschlüsseln <blockquote> <p>Ich glaube das bedeutet ich muss mich in C/C++ einarbeiten und selber einen Client schreiben, und das Projekt aus dem Browser nehmen.</p> </blockquote> <p>In C/C++ hättest du die selben Probleme. Du willst dass der Client verschlüsselte Daten verarbeitet, aber ohne dem Nutzer des Clients die Daten zu offenbaren. Damit der Client allerdings irgendetwas mit den Daten anfangen kann, muss er sie entschlüsseln. Die entschlüsselten Daten liegen irgendwann im Programmspeicher und die wird ein Angreifer auslesen können. Mit C/C++ würdest du es dem Angreifer etwas schwieriger machen, aber keinesfalls hättest du einen effektiven Schutz. Die einzig sinnvolle Lösung hatte @dedlfix dir bereits genannt: Lasse geheime Berechnungen auf dem Server ausführen. Wenn du uns noch mehr über deinen Anwendungsfall verrätst, können wir dir außerdem viel gezieltere Hilfestellung geben als es bis jetzt der Fall ist.</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682074#m1682074 j4nk3y 2016-12-07T10:08:17Z 2016-12-07T10:08:17Z Daten verschlüsseln <p>Hey,</p> <blockquote> <blockquote> <p>Dann kann ich an dieser Stelle aufhören weiter zu Programmieren.</p> </blockquote> <p>Nicht unbedingt. Wenn du dein Konzept umstellen kannst, dass die geheimen Daten auf dem Server gehalten und berechnet werden und der Client nur die für ihn bestimmten Daten anzeigt, dann ist da durchaus noch eine Chance.</p> </blockquote> <p>Ja, dass überlege ich jetzt auch schon seit Stunden aber es geht nicht da die Daten in dem Array bei jedem Client für WebGL verwendet werden, und zwingend gebraucht werden. Die Daten werden Auch falls sie sich bei einem Client relevant für alle anderen Clients ändern per Node.js bei allen Clients überschrieben. Das löschen von <code>daten</code> nach dem benutzen geht auch nicht, da ein Breakpoint dazwischen, <code>daten</code> wieder verfügbar macht... Oh Moment... ne doch nicht.</p> <p>Hat kein Sinn. Jetzt also aus HTML/CSS/Javascript ein C/C++/OpenGl Projekt... da geht wieder ein Jahr für drauf...</p> <p>Ich Danke euch!</p> <p>Viele liebe Grüße<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682080#m1682080 Rolf b 2016-12-07T11:42:23Z 2016-12-07T11:42:23Z Daten verschlüsseln <p>Moment mal. Wenn Du die Daten nutzt, um eine optische Aufbereitung zu erhalten, dann bekommt der Anwender die Daten doch zu sehen. Kannst Du denn nicht eine Vorverarbeitung machen, serverseitig, so dass für die WebGL Verarbeitung genug Informationen da sind, aber der Geheimhaltungsbedarf nicht mehr besteht?</p> <p>Und wie schon von anderen gesagt - ein C++ Projekt hilft Dir auch nicht wirklich, es hebt die Einbruchsschwelle nur an. Du musst zusehen, dass das, was wirklich geheim sein muss, nicht auf den Client gelangt.</p> <p>Im Zweifelsfall musst Du auf Reaktionstempo verzichten, die relevanten Berechnungsdaten, die clientspezifisch sind, in einen Ajax-Request verpacken, die Verknüpfung mit den geheimen Daten am Server machen und nur "nackige" WebGL Anweisungen zurückliefern. Weiß nicht, ob und wie das geht, es hängt alles an deinem Usecase.</p> <p><em>Rolf</em></p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682086#m1682086 j4nk3y 2016-12-07T13:05:18Z 2016-12-07T13:05:18Z Daten verschlüsseln <p>Hey,</p> <blockquote> <p>Moment mal. Wenn Du die Daten nutzt, um eine optische Aufbereitung zu erhalten, dann bekommt der Anwender die Daten doch zu sehen.</p> </blockquote> <p>Ja und Nein. Ich kann ja noch im Javascript ob ein Körper der aus den Daten generiert wird, dargestellt wird oder nicht.</p> <blockquote> <p>Kannst Du denn nicht eine Vorverarbeitung machen, serverseitig, so dass für die WebGL Verarbeitung genug Informationen da sind, aber der Geheimhaltungsbedarf nicht mehr besteht?</p> </blockquote> <p>Ja das tue ich. In den meisten Fällen ist das auch nicht problematisch.</p> <blockquote> <p>Und wie schon von anderen gesagt - ein C++ Projekt hilft Dir auch nicht wirklich, es hebt die Einbruchsschwelle nur an. Du musst zusehen, dass das, was wirklich geheim sein muss, nicht auf den Client gelangt.</p> </blockquote> <p>Ok, dann muss ich nach einer Lösung suchen.</p> <blockquote> <p>Im Zweifelsfall musst Du auf Reaktionstempo verzichten, die relevanten Berechnungsdaten, die clientspezifisch sind, in einen Ajax-Request verpacken, die Verknüpfung mit den geheimen Daten am Server machen und nur "nackige" WebGL Anweisungen zurückliefern. Weiß nicht, ob und wie das geht, es hängt alles an deinem Usecase.</p> </blockquote> <p>Das dürfte gehen. Eine Echo von <code><script> function(){} <script></code> und dann per jQuery einbinden. Das könnte gehen, Müsste ich aber ausprobieren.</p> <p>Problem ist folgendes, nehmen wir dazu an, dass: Aus der Datenbank die Daten für 3 Körper kommen die 3 unterschiedlichen Usern zugeordnet sind, diese bewegen sich durch einen 3 Dimensionalen Raum mit festgelegter Geschwindigkeit und Richtungsvektor. Dies wird dann durch WebGL für jeden Client visualisiert. Weiterhin wird geprüft ob die jeweils anderen Körper sich in einem Radius des Client betreffenden Körper liegt und damit entschieden ob die jeweils anderen wirklich sichtbar sind oder ausgeblendet werden. Hierbei sind die Daten für alle 3 Körper per <code>console.log()</code> für jeden Client verfügbar. So plane ich es bis jetzt. Nun würde es aber einen Vorteil gegenüber den anderen Clients bedeuten wenn einer weiß, dass es die anderen Körper erstens gibt und zweitens an welchen Koordinaten sich diese befinden.</p> <p>Dieses Problem muss ich lösen. Ich habe bereits einen Ansatz, doch diesen finde ich sehr Kompliziert. Man kann leicht durch einfache Vektorrechnung bestimmen ob und wenn wann, ein Körper im Radius eines anderen liegt und somit angezeigt werden kann. Nun müsste, wenn die erste Anfrage vom User kommt, für jeden Körper in der Datenbank einmal diese Berechnung durchlaufen und dann für jeden Körper ein PHP <code>sleep()</code> stattfinden bis die Daten dem Client zur Verfügung gestellt werden können. Weiterhin ist es für den User möglich Richtungsvektor und Geschwindigkeit zu ändern. Welches die Informationen von PHP wieder ändert, somit müsste dann das <code>sleep()</code> unterbrochen werden. Nun nutze ich mitunter Node.js, wo bei einer Richtung-/Geschwindigkeitssänderung wieder für jeden Körper berechnet werden müsste ob und wenn wann, ein Körper dargestellt werden kann. Und dann wieder per <code>setTimout()</code> gewartet werden muss bis die Daten zu dem entsprechende Client geschickt werden können. Dadurch könnten sich auch 2 Körper die sich vor einer änderung getroffen hätten, dann nicht mehr treffen und somit auch nicht angezeigt werden dürften. Also müsste genau dieses <code>setTimout()</code> gelöscht werden, ich weiß zwar wie man alle gesetzten Timouts ändert aber nicht einen spezifischen. Und ich könnte jetzt noch nicht jede Möglichkeit abschätzen wo Probleme auftreten könnten.</p> <p>Gruß<br> Jo</p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682111#m1682111 Rolf b 2016-12-07T20:16:17Z 2016-12-07T20:16:48Z Daten verschlüsseln <p>Wird das eine Echtzeit-Bewegung im 3D Raum? Oder eine Schritt-für-Schritt Bewegung, wo Du nur Einzelbilder darstellst? Davon hängt ab, was Du dir leisten kannst, auf den Server zu legen.</p> <p>Jedenfalls sind reguläre HTTP Requests und ein PHP-Sleep da nicht so der wirkliche Bringer. Deine Idee ist offenbar, den Request serverseitig warten zu lassen, bis der rechte Zeitpunkt gekommen ist und dann erst die Antwort zu senden. Das nennt man "long polling" und ist eine Technik, die zwar funktioniert, aber für deinen Zweck möglicherweise zu langsam, denn jeder Poll baut eine neue HTTP Verbindung auf. Dass "long polling" altmodisch ist, lasse ich mal ganz außer Acht. Es gibt jedenfalls was neueres und schnelleres, und die Browser unterstützen es mitterweile auch ziemlich gut.</p> <p>Du hast ein node.js im Einsatz, schau Dir mal WebSockets oder ServerSent-Events an. Dabei wird die HTTP Verbindung nicht beendet, sondern offengehalten, und dann kann man beinahe in Echtzeit Messages in beiden Richtungen verschicken. Es gibt auch Javascript-Librarys, die Dir die eigentliche Technik kapseln. Bei uns im Unternehmen verwenden wir SignalR (leider hab ich es selbst noch nicht anprogrammiert). Das gibt's für den Brauser und für Node und stellt die bidirektionale Verbindung zwischen Server und Clients her. Ich denke, damit müsstest Du einen serverseitigen Prozess hinbekommen, der Clientübergreifend agiert und bei kollidierenden Aktionen von Client 1 ein Event bzw. eine Nachricht an Client 2 schickt.</p> <p>Wenn Du einen zentralen Serverprozess hast, der für alle Clients die Objekte verwaltet, dann kann er im Prinzip immer dann, wenn ein Objekt für einen Client sichtbar wird, ihm eine Message schicken: "Male Körper A an Position XYZ". Und wenn ein Client seinen eigenen Körper bewegt, sendet er dem Server eine Message "Bin mit Körper K nun an Position xyz und schaue in Richtung pqr" - oder wie auch immer.</p> <p>Wie das im Detail geht, habe ich leider noch nicht selbst erkundet. Viel Spaß beim Forschen :)</p> <p><em>Rolf</em></p> https://forum.selfhtml.org/self/2016/dec/6/daten-verschluesseln/1682127#m1682127 j4nk3y 2016-12-08T07:18:36Z 2016-12-08T07:18:36Z Daten verschlüsseln <p>Guten morgen,</p> <blockquote> <p>Wenn Du einen zentralen Serverprozess hast, der für alle Clients die Objekte verwaltet, dann kann er im Prinzip immer dann, wenn ein Objekt für einen Client sichtbar wird, ihm eine Message schicken: "Male Körper A an Position XYZ". Und wenn ein Client seinen eigenen Körper bewegt, sendet er dem Server eine Message "Bin mit Körper K nun an Position xyz und schaue in Richtung pqr" - oder wie auch immer.</p> </blockquote> <p>Node.js nutze ich mit Socket.io, also Websockets habe ich schon implementiert.</p> <p>Habe mir auch seit gestern Gedanken gemacht und bin auf eine Lösung gekommen. Erst wollte ich manuell einen Cronjob programmieren, mittels <code>new.Date()</code> und <code>setTimout()</code> aber da gibt es natürlich ein Modul für Node.js welches Cronjobs schon bereit stellt. Auch schon installiert und erste Funktion geschrieben. gleich testen ob das funktioniert.</p> <p>Und dann für jeden Körper in diesem Cronjob einfach testen ob ein Körper im "Sichtbereich" eines anderen liegt und die Daten zu dem betreffenden Client schicken. Muss mir dann noch überlegen wie ich sinnvoll die Daten beim Client lösche wenn das danach nicht mehr der Fall ist. Aber das sollte nicht so schwierig sein.</p> <p>Ich muss mir einfach noch ein wenig Gedanken machen, welche Aufgaben ich mit dem Apache bearbeiten kann und welche zwingend über den Node-Server laufen müssen, damit jeder User die relevanten Daten erhält wenn er sie den wissen darf.</p> <p>Danke für deine Anregungen.</p> <p>Gruß<br> Jo</p>