NEWS
erlaubte Zeichen in Id's?
-
@apollon77 sagte in Wichtige Änderung: Objekt/State-ID-Bezeichner dürfen keine *, ? [, ], " oder ' mehr enthalten:
Hi,
ab dem nächsten Update des js-controller dürfen die Bezeichner/IDs von Objekten keine *, ? [, ], " oder ' als Zeichen mehr enthalten.
@apollon77 sagte in [Aufruf] Mithilfe beim Prüfen der Adapter auf unerlaubte Zeichen in Objekt-IDs:
Hi,
wir brauchen Eure Mithilfe!!
Ab dem nächsten Update des js-controller (1.5) dürfen die Bezeichner/IDs von Objekten einige bestimmte Zeichen mehr enthalten. Wir prüfen gerade alle Adapter und brauchen dazu Eure Hilfe!
...Hi zusammen,
ich muss das vermeintlich alte Thema hochholen.
Gibt es eigentlich eine Whitelist, welche Zeichen erlaubt sind? Die Blacklist in dem im o.a. Thread angebenen Script scheint mir nicht vollständig zu sein. Gibt es was aktuelles dazu?Im Script werden die folgenden Zeichen als nicht zulässig geprüft:
id.match(/[][*,;'"`<>\\?]+/)
Das Script meldet bei mir
Was ist sonst noch nicht zulässig? Wie sieht es mit
§$%&:
aus?Ich bin der Meinung, dass der Doppelpunkt auch nicht zulässig ist, zumindest gab es während der Entwicklung irgendeinen Grund, warum ich den Doppelpunkt aus meinen Ids gestrichen habe (spontan fällt mir der Grund nicht mehr ein). Als Ids nutze ich Ids, die ich von dem Dienst bekomme, den ich anspreche. Und da sind nunmal die Doppelpunkte drin. Daraufhin habe ich die Ids mit
encodeURIComponent(id)
codiert. Soweit klappt alles. Nun kommen dadurch auch %-Zeichen in die Id. Die haben mir keine Probleme bereitet, bis nun ein Nutzer einen State im History-Adapter loggen wollte. Aus meiner Sicht aktuell ein Fehler im History-Adapter, zumindest wenn das %-Zeichen erlaubt ist. Falls nicht, dann sollten wir eine Whitelist haben, sonst haben wir an anderer Stelle wieder das ProblemGrüße
jpgorganizer -
@jpgorganizer sagte in erlaubte Zeichen in Id's?:
zumindest gab es während der Entwicklung irgendeinen Grund, warum ich den Doppelpunkt aus meinen Ids gestrichen habe
in Bindings gibt es Probleme mit dem Doppelpunkt. z.B. Mac_adressen als ID
-
@Homoran das war's . Richtig.
Aber Doppelpunkte habe ich ausgemerzt
Es bleibt die Frage, welche Zeichen sind erlaubt bzw. nicht erlaubt. Ich persönlich würde eine Whitelist einer Blacklist bevorzugen.
VG
jpgorganizer -
@jpgorganizer https://github.com/ioBroker/ioBroker.js-controller/blob/master/lib/adapter.js#L36 das ist das was js-controller ich glaube seit 1.5 an zeichen in IDs automatisch durch _ ersetzt. Idealerweise sind die aber gar nicht drin
-
-
Das ist der offizielle Teil. Wir wissen aber das einige Zeichen wie auch # dann zB im Browser Umfeld probleme machen können ... haben aber bisher noch nicht entschieden deswegen zeichen zu verbieten
-
@apollon77 sagte:
einige Zeichen wie auch # dann zB im Browser Umfeld probleme machen können
... und ^ ( ) { } $ können Probleme mit dem $Selector machen.
-
@jpgorganizer sagte:
Ich persönlich würde eine Whitelist einer Blacklist bevorzugen.
Ich persönlich beschränke mich auf Buchstaben (ohne Umlaute und ß), Ziffern, Unterstrich, Bindestrich und natürlich Punkt, der eine besondere Bedeutung als optischer Trenner (Ordnerstruktur) hat.
-
@paul53 sagte in erlaubte Zeichen in Id's?:
@jpgorganizer sagte:
Ich persönlich würde eine Whitelist einer Blacklist bevorzugen.
Ich persönlich beschränke mich auf Buchstaben (ohne Umlaute und ß), Ziffern, Unterstrich, Bindestrich und natürlich Punkt, der eine besondere Bedeutung als optischer Trenner (Ordnerstruktur) hat.
Das würde ich ja auch tun, nur ich bekomme die Ids vom Webservice und ich schau mir die eigentlich gar nicht an. Da wir offensichtlich keine Liste haben, die keine Nebenwirkungen zeigt, muss ich das anpassen.
Ich empfehle dringend eine solche Whitelist aufzubauen. So ist das eine Spezifikationslücke. Das fällt ioBroker irgendwann auf die Füße. Dass ich das jetzt noch anpasse, liegt nur daran, weil ich es irgendwann bestimmt mal selbst brauche. Im anderen Fall würde der history Adapter halt nicht funktionieren.VG
jpgorganizer