Ich habe einen VirtualHost laufen der einerseits auf die Files unter "W:/www" zugreift und andererseits die Websocket-Kommunikation ws:// zu einer Serverapplikation weiterleitet.
- Code: Select all
<VirtualHost *:80>
ServerName my.server.com
RewriteEngine On
# When Upgrade:websocket header is present, redirect to ws
# Using NC flag (case-insensitive) as some browsers will pass Websocket
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/(.*) ws://localhost:8181/$1 [P,L]
# All other requests go to http
DocumentRoot "W:/www"
<Directory "W:/www">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Wenn man jetzt mal davon absieht, dass die Verbindung noch nicht gesichert ist (anderer Post)...
Die eigentliche Website konnte ich leicht Passwortschützen mit Hilfe von .htaccess Files.
Nachdem ich jetzt aber ein wenig drüber nachgedacht habe, bin ich zu dem Schluss gekommen, dass die Websocket Verbindung damit aber noch nicht Passwortgeschützt sein dürfte. Sprich wenn jemand die Websocket URL kennen würde (zB: ws://my.server.com) dann müsste es auch möglich sein, dass er oder sie direkt, ohne den entsprechenden html und js Files zugreift, ohne ein Passwort kennen zu müssen.
Gibt es eine Möglichkeit, dass man den Websocket so konfiguriert, dass eine Verbindung nur zugelassen wird wenn bei der entsprechenden Website auch das richtige Passwort eingegeben wurde?
Wie werden üblicherweise solche Anmeldevorgänge abgehandelt, dass Websocket wirklich nur dann funzt wenn das Passwort auch gestimmt hat?
Kann man das eingegebene Passwort in Javascript in kodierter Form über den Websocket übertragen und dann in der Server Application mit dem im .htpasswd File vergleichen? Oder lässt sich der Passwortschutz irgendwie einfacher mit dem Websocket verknüpfen?
Danke!