Gibt es in Meteor "private" Servermethoden?

7

Gibt es eine Möglichkeit, zu verhindern, dass ein Client eine Servermethode über die Browserkonsole aufruft?

Ich entnehme der Inoffiziellen Meteor-FAQ , dass dort ist nicht. Ich wollte nur überprüfen, ob das wirklich der Fall ist - die FAQ ist nicht wirklich spezifisch. Ich meine, gibt es keine "privaten" Methoden?

    
Lindsayts 19.09.2013, 06:34
quelle

2 Antworten

16

Beim Meteor können die von Meteor.methods beschriebenen "Methoden" alle vom Client aufgerufen werden. In diesem Sinne gibt es keine private -Methoden, da der Zweck des RPC-Aufrufs darin besteht, dass der Client den Aufruf ausführt.

Wenn Sie eine 'private' Methode wünschen, können Sie eine gewöhnliche JavaScript-Methode verwenden. Wenn Sie die Methode mit var definieren, ist sie nur innerhalb der Datei verfügbar und kann nicht vom Client aus aufgerufen werden.

%Vor%

entspricht:

%Vor%

Oder Sie können es so definieren, dass es von Ihrem Server-Skript verwendet werden kann:

%Vor%

Wenn Sie meinen, Sie möchten einen RPC-Methodenaufruf, der nur über den JavaScript-Code zugänglich ist, aber nicht über die Javascript-Konsole in Chrome, ist dies nicht möglich. Dies liegt daran, dass die Idee hinter Meteor alle RPCs vom Client sind nicht vertrauenswürdig & amp; Es gibt keine Möglichkeit zu unterscheiden, ob es von der Konsole kam oder nicht. Sie können die Meteor-Benutzerauthentifizierung oder Collection.allow oder Collection.deny Methoden, um unbefugte Änderungen auf diese Weise zu verhindern.

    
Akshat 19.09.2013, 09:22
quelle
3

Ich habe eine private Methode erstellt, indem ich diese.connection auf null gesetzt habe.

Hinweis: Ссылка

Beispiel

%Vor%     
tanutapi 09.09.2015 09:49
quelle

Tags und Links