2016-08-02 49 views
0

Ich entwickelte eine Chat-Anwendung für eine mobile Plattform, die den eJabberd xmpp-Chat-Server verwendet, der auf meinem öffentlichen Ubuntu-Computer konfiguriert ist.Anderen xmpp-Client für den Zugriff auf meinen Ejabberd-Server sperren

Um die Server-Verbindung zu machen, habe ich https://mydomainname.com:5280/http-bind so verwendet, um dies nur für den Zugriff durch meine Client-Anwendung nicht andere zu schützen.

Jetzt ist mein Server für jeden Client wie Pidgin, Adium usw. Wie dies zu blockieren.

Antwort

1

Sie können Ejabberd so modifizieren, dass eine benutzerdefinierte Authentifizierung verwendet wird, die eine Variation aus der Spezifikation integriert und diese in Ihrem Client implementiert. Auf diese Weise kann der unmodifizierte Standard-Client diesen nicht lesen.

Da jedoch Ihr Client Javascript und Code sichtbar ist, ist es immer noch möglich, einen vorhandenen Client zu patchen, um Ihre Variation zu implementieren, aber es gibt keinen Weg dazu. Der Ansatz von "shared secret" bedeutet, dass, wenn das Geheimnis gefunden wird, andere Clients einen Weg finden können, sich zu verbinden. Das Geheimnis ist noch weniger schwer zu finden, wenn Ihr Code öffentlich ist (auch wenn er verschleiert ist).

+0

Könnten Sie mir bitte einige Schritte geben, um Ejabberd zu ändern, um eine benutzerdefinierte Authentifizierung zu haben. – Jeeva

+0

Sie sollten sich eines der vorhandenen ejabberd-Authentifizierungsmodule als Beispiel ansehen. ejabberd_auth.erl ist der Hauptdispatcher. Sie müssen ein Backend implementieren wie: ejabberd_auth_mnesia.erl, ejabberd_auth_external.erl. Sie müssten zum Beispiel annehmen, dass es sich um ein zusätzliches Feld mit dem Kundennamen oder dem Geheimcode handelt (nur ein Beispiel). –