Websocket Verbindung zwischen Android Client und Erlang Server?

Hallo,

Nachdem ich vor etwa einem Monat damit begann, meine eigene Handyapp zu entwickeln, um meine Kenntnisse zu festigen, bin ich momentan auf folgenden Stand:

Alte Frage: Kommunikation zwischen App und Webserver? (Computer, App, Server) - gutefrage

Ich kann mich mithilfe des HTTP Protokolls bei der App registrieren und anmelden. Kann Freunde hinzufügen und mit denen einen privaten Chat starten. Jedoch funktioniert alles noch über HTTPS und der Client stellt jede sekunde eine Anfrage an den Server. Nun würde ich gerne eine Websocketverbindung implementieren.

Auf den Server läuft Ubuntu, eine SQL Datenbank und ein Apache Webserver. Serverseitig würde ich gerne den Websocketserver mit Erlang programmieren, da bekannte SocialMedia Konzerne dies ebenfalls nutzen. Ich habe mich reichlich über die Websocketverbindung informiert und weis den Ablauf, jedoch finde ich keine ausreichenden Quellen, wie ich den Client in AndroidStudio/Java umsetzen kann, sodass er auch auf Servernachrichten reagiert. (Bisher habe ich nur zum Websocket hin kommunizieren können und direkte Anworten wahrnehmen können), gleicher Effekt wie mit dem HTTP Protokoll. Manche verwenden die Socketbibliothek, welche aber nur direkte Anworten auffangen kann. Andere verwenden SocketIO, dies habe ich aber nicht zum laufen bekommen.

Welche Bibliotheken sollte ich für meine Anforderungen nutzen und in welche Richtung sollte die Umsetzung erfolgen?

Liebe Grüße

Alex

App, Linux, Java, Android, Webserver
Mehrere Webseiten über ein Login System organisieren?

Ich hab mehrere Webseiten die teils über verschiedene Server verstreut sind und es wäre ziemlich lästig für jede ein eigenes zu machen also hab ich beschlossen sowas ähnliches wie oAuth nur mit PHP zu bauen, am besten so zweckmäßig wie möglich um das ganze zu erleichtern. Kann man das Konzept als fertig bezeichnen oder muss man da noch was dran ändern?

Dass man sich anmelden kann wird man auf die anmeldeseite geleitet, man gibt seine Daten ein und man wird auf die eigentliche Seite zurückgeleitet

um einen Benutzer anzumelden greift der dienst als erstes auf einen langen string zurück nennen wir es mal API Token. dieser wird während der nutzer auf die anmeldeseite geleitet wird mit post übergeben um zum einen sicherzustellen dass die webseite autorisiert dazu ist daten anzufragen und zum anderen dass das login system weiß wohin es den token und den Nutzer nach der anmeldung leiten soll. Dann meldet sich der nutzer auf der loginseite n und der nutzername und das passwort wird validiert etc. danach stellt der authentifizierungsserver das access Token aus, was beim weiterleiten wieder zurückgepostet wird. Dieses access token wird dann beim nutzer als cookie gespeichert und der Dienst der dann die Zeichenkette erhalten hat fragt dann die benötigten daten(nutzername, geburtsdatum etc.) mit curl von autentifizierungsserver ab und somit ist der nutzer angemeldet.

Das heißt ich müsste das script was prüft welchen Benutzername man hat muss mit jedem einzelnen Seitenaufruf erneut mittels dem access token den nutzernamen anfragen, eventell kann man das aber auch über nen session cookie mit nutzername regeln

Also: kann man das umsetzen oder habe ich was vergessen?

Computer, Webseite, programmieren, JavaScript, Datenbank, MySQL, PHP, Webserver
NGINX Reverse Proxy sicher konfigurieren?

Hallo,

ich habe eine grundsätzliche Frage dazu, wie man NGINX sicher als Reverse Proxy einsetzt und leider nicht wirklich was dazu im Netz gefunden.

Mal angenommen auf Server A läuft eine Webapplikation, die auf 10.0.0.1:5000 hört und auf Server B läuft mein NGINX, der auf 10.0.0.2:80/443 hört. Ich möchte also von Server A zu B einen Reverse Proxy machen und die Verbindung soll mit TLS abgesichert sein.

upstream serverA {
    server 10.0.0.1:5000;
}

server {
    server_name example.org;
    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/example.org.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

    location / {
        proxy_pass http://serverA;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }

}

... HTTPS redirect

Aber jetzt ist doch nicht der Traffic von Server B also dem NGINX, auf den der Nutzer zugreift zu Server A, der Webapplikation verschlüsselt oder liege ich da falsch? Falls er nicht verschlüsselt ist, wie erreiche ich das? Ist hier eine einfache Firewall Regel auf Server A schon ausreichend? Im Sinne von

ufw allow in from 10.0.0.2 to any port 5000/tcp

Danke für alle Antworten

Server, Computer, Technik, Linux, Sicherheit, IT-Sicherheit, SSL, Technologie, Webserver, nginx, Spiele und Gaming
Unterordner eines Apache Webservers freigeben?

Hallo, ich habe ein kleines Problem, bei dem ich dringend Hilfe gebrauchen könnte.

Ich habe unter Kali Linux einen Apache Webserver erstellt. Hierauf soll aus dem lokalen Netzwerk zugegriffen werden können. Das Standardverzeichnis ist hier /var/www/html. Die darin liegende index.html lässt sich auch Problemlos im Browser darstellen. Allerdings wollte ich einige Unterordner anlegen. So soll im Browser eine index.html angezeigt werden können, die im Verzeichnis /var/www/html/unterordner liegt. Versuche ich aber per Browser auf diesen Unterordner zuzugreifen, gebe also http://ip/unterordner an, stellt sich hieraus, dass ich keinen Zugriff darauf habe.

Es heißt hier:

Forbidden
You don't have permission to access this resource.

Im Titel der Seite steht zudem:

403 Forbidden

Es wurden keinerlei Änderungen in der Standardkonfiguration des Webservers vorgenommen. Standardmäßig sollte deshalb eigentlich der Zugriff auf alle Unterordner von /var/www/html und die darin liegende Dateien möglich sein.

Das ist jedoch nicht der Fall. Ich habe nun schon ein wenig recherchiert, aber irgendwie wollte nichts wirklich funktionieren.

Mein Verdacht, weshalb nicht auf die Unterordner zugegriffen werden kann, ist deshalb der, dass ich unter Linux für den Zugriff per FTP einen Nutzer angelegt habe, dessen Home-Verzeichnis /var/www ist.

Ich wäre sehr dankbar für jeden guten Ratschlag, wie sich das Problem lösen lassen könnte.

Computer, Technik, Linux, Apache, Technologie, Webserver, FTP-Server, Kali Linux
Lässt sich eine IP-Adresse eindeutig einem Gerät zuordnen?

Hallo allerseits. Ich habe gerade ein kleines Problem beim Konfigurieren eines Apache Webservers. Ich würde gerne ein Verzeichnis einrichten, das nur für einen bestimmten Computer zugänglich ist. Soweit so gut, meine Idee war es, das über die IP-Adresse zu organisieren.

Hier dachte ich, dass gilt, das global jedes Gerät, beispielsweise jeder Computer eine einmalige IP-Adresse hat, es also keine zwei Geräte mit der selben IP-Adresse gibt.

Hier stellt sich mir nun die Frage, wie es überhaupt geregelt werden soll, dass zwei Geräte nicht die gleiche IP-Adresse haben. Wird hier bei der Vergabe überprüft, welche IP-Adresse noch frei ist, oder wie funktioniert das?

Aber es wird ja noch etwas komplizierter: Sobald man "mit seinem Computer ins Internet geht" ist nach außen hin, sprich beispielsweise für meinen Apache Webserver ja nur noch die IP-Adresse des Routers erkenntlich. So können 2 Computer, die sich im selben Netzwerk befinden doch durchaus, zumindest nach außen hin, die selbe IP-Adresse erhalten, oder habe ich dabei etwas falsch verstanden?

Und erneut wird es nochmal komplizierter: Für Privatkunden ist es meines Wissens nach sehr schwierig, eine statistische IP-Adresse zu erhalten. Durch das dynamische Zuweisen von IP-Adressen kann es somit doch dann dazu kommen, dass morgen jemand anders die selbe IP-Adresse hat, die ich heute hatte?

Gibt es in diesem ganzen Chaos also auch nur irgendeine Option, wie ein Server eine IP-Adresse eindeutig einem einzigen Gerät zugeordnet kann? So, dass die beispielsweise die IP eines Computers nicht durch die IP des Routers überschrieben wird?

Computer, Internet, Technik, Netzwerk, IP-Adresse, Technologie, Webserver

Meistgelesene Fragen zum Thema Webserver