Re: [vz-dev] jsonp support für vz
On 07.04.2013 13:23, Andreas Goetz wrote: > Jetzt fehlt nur noch ein eleganter weg, zusätzliche MWs in der > Konfiguration anzugeben. In der Konfiguration von was?
Re: [vz-dev] jsonp support für vz
Hallo Jakob, danke für den Hinweis! padding=? funktioniert tatsächlich auch (hatte ich in der Doku anders verstanden)- damit ist alles Paletti, danke! Jetzt fehlt nur noch ein eleganter weg, zusätzliche MWs in der Konfiguration anzugeben. Viele Grüsse, Andreas On 07.04.2013 02:33, Jakob Hirsch wrote: On 04.04.2013 19:14, Andreas Goetz wrote: Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich fände dennoch "callback" statt "padding" als Parameter schöner- dann liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung Wenn ich die Beschreibung von getJSON richtig verstanden habe (es ist leider nicht explizit beschrieben), funktioniert das mit jedem Parameter, der vor "=?" steht, in unserem Fall also "padding=?". Ich finde "padding" als Parametername auch nicht so prall (auch wenn es technisch korrekt ist), aber ohne Not ändert man sowas nicht. muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter reinzufummeln. Aber ja- es ist möglich ;) Also der Unterschied zwischen $.getJSON(url, data, success) und $.ajax({dataType: "json", url: url, data: data, success: success}); ist jetzt nicht soo riesig...
Re: [vz-dev] jsonp support für vz
On 04.04.2013 19:14, Andreas Goetz wrote: > Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich > fände dennoch "callback" statt "padding" als Parameter schöner- dann > liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung Wenn ich die Beschreibung von getJSON richtig verstanden habe (es ist leider nicht explizit beschrieben), funktioniert das mit jedem Parameter, der vor "=?" steht, in unserem Fall also "padding=?". Ich finde "padding" als Parametername auch nicht so prall (auch wenn es technisch korrekt ist), aber ohne Not ändert man sowas nicht. > muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter > reinzufummeln. Aber ja- es ist möglich ;) Also der Unterschied zwischen $.getJSON(url, data, success) und $.ajax({dataType: "json", url: url, data: data, success: success}); ist jetzt nicht soo riesig...
Re: [vz-dev] jsonp support für vz
On 04.04.2013 14:52, Jakob Hirsch wrote: Hi, Andreas Goetz, 03.04.2013 08:46: ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch json möglich. interessante sache irgendwie... es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen middlewares abbonieren zu koennen - funktionierte das bisher garnicht?! Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch daran ein wenig zu basteln. Das ist jetzt auch schon möglich. Kann man einfach selbst testen, indem man in seinem Frontend einen der öffentlichen Kanäle von demo.volkszaehler.org abonniert. https://github.com/volkszaehler/volkszaehler.org/pull/44 Ich paste einfach mal meinen Kommentar von dort: JSONP wird bereits über den Parameter "padding" unterstützt, siehe http://wiki.volkszaehler.org/development/api/reference?s[]=padding#json Dieser wird auch schon vom frontend benutzt, wenn man eine andere als die lokale middleware ausgewählt hat. Allerdings belässt padding den Content-type auf application/json, das sollte wohl wie bei dir application/javascript sein, das sollten wir noch fixen. Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich fände dennoch "callback" statt "padding" als Parameter schöner- dann liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter reinzufummeln. Aber ja- es ist möglich ;) Danke und Gruss, Andreas
Re: [vz-dev] jsonp support für vz
Hi, Andreas Goetz, 03.04.2013 08:46: >>> ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw >>> zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch >>> json möglich. >> interessante sache irgendwie... >> es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen >> middlewares abbonieren zu koennen - funktionierte das bisher garnicht?! > Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config > gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS > hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch > daran ein wenig zu basteln. Das ist jetzt auch schon möglich. Kann man einfach selbst testen, indem man in seinem Frontend einen der öffentlichen Kanäle von demo.volkszaehler.org abonniert. > https://github.com/volkszaehler/volkszaehler.org/pull/44 Ich paste einfach mal meinen Kommentar von dort: JSONP wird bereits über den Parameter "padding" unterstützt, siehe http://wiki.volkszaehler.org/development/api/reference?s[]=padding#json Dieser wird auch schon vom frontend benutzt, wenn man eine andere als die lokale middleware ausgewählt hat. Allerdings belässt padding den Content-type auf application/json, das sollte wohl wie bei dir application/javascript sein, das sollten wir noch fixen. > In der jetzigen Version ist das allerdings ein potentielles > Sicherhitsrisiko- es lassen sich ja nicht nur Daten abfragen sondern > auch löschen. Was fehlt ist m.E. eine Konfigurationsoption mit der jsonp > standardmäßig erstmal deaktiviert ist. Warum sollte JSONP für die middleware ein Sicherheitsrisiko sein? Wenn man die UUID kennt und die middleware erreichen kann, kann man das auch so über die API machen. Was ich an JSONP skurril finde (zumindest soweit ich das verstanden habe): Wegen der same-origin-policy kann man nicht einfach JSON benutzen. Um das zu umgehen, lädt man sich javascript-code von einem fremden Server!?! Ich habe zumindest nirgendwo gesehen, daß geprüft wird, ob der Server tatsächlich sowas wie "callback_methode({daten...})" zurückgibt, oder nicht beliebigen anderen javascript-code, der z.B. die cookies ausliest und für alle Kanäle ein delete macht.
Re: [vz-dev] jsonp support für vz
Hallo Thorben, On 03.04.2013 08:03, Thorben Thuermer wrote: On Mon, 01 Apr 2013 17:33:46 +0200 Andreas Goetz wrote: Hallo Zusammen, ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch json möglich. interessante sache irgendwie... es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen middlewares abbonieren zu koennen - funktionierte das bisher garnicht?! Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch daran ein wenig zu basteln. (fuer die die die problematik nicht kennen: http://en.wikipedia.org/wiki/JSONP ) Wenn Interesse besteht hätte ich hier einen Patch mit dem sich JsonP darstellen lässt- es fehlt nur noch eine Default-Konfigurationsoption um das Verhalten standardmäßig zu deaktivieren. warum schickst du den patch nicht einfach? oder noch besser, einen pull-request auf github. Da war ich schneller ;) https://github.com/volkszaehler/volkszaehler.org/pull/44 In der jetzigen Version ist das allerdings ein potentielles Sicherhitsrisiko- es lassen sich ja nicht nur Daten abfragen sondern auch löschen. Was fehlt ist m.E. eine Konfigurationsoption mit der jsonp standardmäßig erstmal deaktiviert ist. interessant waehre noch die technische umsetzung... ein zusaetzlicher parameter um das format anzugeben, und den namen der callback funktion? Sind nur 3 Zeilen- siehe patch. Aufgerufen wird es- wenn man jQuery einsetzt- indem einfach callback=? an die Anfrage gehängt wird, jQ bastelt daraus dann einen eindeutigen Funktionsnahmen den es auf dem Rückweg auch aufruft und die Daten rausholt. ich denke das "standard"-rueckgabeformat der middleware zu aendern waehre keine gute idee, zumal es auch andere clients als das standard-frontend gibt. Nicht nötig- es wird ja über den Request gesteuert, der Client kann also entscheiden. Frohe Ostern, Andreas - Thorben Viele Grüße, Andreas
Re: [vz-dev] jsonp support für vz
On Mon, 01 Apr 2013 17:33:46 +0200 Andreas Goetz wrote: > Hallo Zusammen, > > ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw > zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch > json möglich. interessante sache irgendwie... es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen middlewares abbonieren zu koennen - funktionierte das bisher garnicht?! (fuer die die die problematik nicht kennen: http://en.wikipedia.org/wiki/JSONP ) > Wenn Interesse besteht hätte ich hier einen Patch mit dem > sich JsonP darstellen lässt- es fehlt nur noch eine > Default-Konfigurationsoption um das Verhalten standardmäßig zu deaktivieren. warum schickst du den patch nicht einfach? oder noch besser, einen pull-request auf github. interessant waehre noch die technische umsetzung... ein zusaetzlicher parameter um das format anzugeben, und den namen der callback funktion? ich denke das "standard"-rueckgabeformat der middleware zu aendern waehre keine gute idee, zumal es auch andere clients als das standard-frontend gibt. > Frohe Ostern, > Andreas - Thorben
[vz-dev] jsonp support für vz
Hallo Zusammen, ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch json möglich. Wenn Interesse besteht hätte ich hier einen Patch mit dem sich JsonP darstellen lässt- es fehlt nur noch eine Default-Konfigurationsoption um das Verhalten standardmäßig zu deaktivieren. Frohe Ostern, Andreas