Freigabe-Tooken bei Share-API Nutzung kĂŒrzen

Moin,
ich nutze die Share-Api zur Freigabe von Dateien.
Allerdings sind die 15-stelligen Tokens eindeutig zu lang.
Können die irgendwo eingestellt (LÀnge etc.) werden ?

1 Like

Es gibt zwei Apps zum Umbenennen von Freigabelinks:

  1. ShareRenamer (sharerenamer)
  2. Configurable Share Links (cfg_share_links)

2.) nutzt die neueste API und bietet etwas mehr Funktionen als 1.)

Es kann aber nirgendwo die LĂ€nge der Token eingestellt werden, es muss bei jeder Freigabe eines generiert werden.

Soweit danke erstmal.
Das IMMER ein Token generiert werden muss is klar.
Aber 15 Zeichen lang ?
Wir haben ein Portal auf NC wo in einem Unternehmen Daten auf einem Server emofangen und aufbereitet werden und dann via SFTP hochgeladen werden und ein Automatisches Zufallspasswort sowie eine URL generiert wird.
Nun ist es einigen Endusern zu umstÀndlich eine solch lange URL vom Ausdruck der Zugangsdaten im Browser einzugeben (Eben diese 15 stellen).
Daher die Frage, ev. gibts die Möglichkeit die URL zu shrinken (Es ist kein externer Anbieter erlaubt) damit die generierte URL â€œĂŒberschaubar” bleibt ?

Wie? Die geben das von Hand ein?

DafĂŒr gibt es von Anbeginn des Digital-Zeitalters schon Copy&Paste!

Das habe ich doch oben beschrieben!

Du kannst aber auch ein Skript schreiben, der die URL nach deinen Vorgaben mit einem randomisierten Token in der von dir bevorzugten LĂ€nge generiert, der das dann automatisiert in der Datenbank bei jedem neu generierten Share anpasst. Das ist kein großes Hokus Pokus, das kann jeder mit ein Wenig Kenntnissen in Shell-Skripting und SQL bauen.

Ich habe auf einem weiteren Webserver eine Art PHP-URL-Shortener auf Basis einer CSV-Datei mit DatensÀtzen aus Kurz-URL und Nextcloud-Share.

1 Like

Ok, also ĂŒber nen eigenen shortener, wie rufst du die auf wenn du nen Links generiert hast via API ?

Copy&Paste : Nunja, wenn der Kunde nur einen Zettel in die Hand gedrĂŒckt bekommt geht das halt nicht anders.

Ist mehr eine Bookmarkliste, die ich manuell in die CSV kopiere. Das PHP nutzt 301-Redirect auf die Nextcloud-URL.

Bei wenigen und statischen URL könnte man auch direkt Rewrite in .htaccess auf einem eigenen virtuellen Webserver verwenden.

Wie wÀre es mit QR-Codes zum scannen? Oder GÀste-App mit E-Mail zur Anmeldung?

Ich halte 15 Zeichen auch fĂŒr zu lang. Sind schon ziemlich viele Möglichkeiten. Passwort brauchst du dann nicht wirklich. Vor allen wenn du Link und Passwort ĂŒber den gleichen Weg ĂŒbertrĂ€gst. Aber Shares bei Microsoft 365 sind schlimmer. Die tippt niemand ab.

die letzte Aussage (die ^^ hier) muss ich revidieren.

Die LĂ€nge der Token wird in der Datei

“lib/private/Share/Constants.php”

definiert. Ziemlich weit unten in dieser Zeile:

	public const TOKEN_LENGTH = 15; // old (oc7) length is 32, keep token length in db at least that for compatibility

Ich habe es auch schon ausprobiert. KĂŒrzen geht, wird unmittelbar ĂŒbernommen.

Es muss aber nach jedem Update von Neuem gesetzt werden.

1 Like

Nun habe ich ein kleines Script geschrieben fĂŒr dich, damit lĂ€sst sich das wunderbar anpassen ohne jedes Mal tief in den Dateien eintauchen zu mĂŒssen.

Installiere das Skript so:

sudo wget -P /usr/local/bin  https://global-social.net/apps/raw/s/nc-sharetoken-length
sudo chmod +x /usr/local/bin/nc-sharetoken-length

Das Skript geht davon aus, dass Nextcloud im Verzeichnis

/var/www/nextcloud

installiert ist.

Wen dem nicht so ist, dann muss das mit folgendem Befehl entsprechend abgeÀndert werden:

# Die erste Zeile entsprechend anpassen und dann beide Zeilen ausfĂŒhren:
nc_path=/your/path/to/nextcloud
sudo sed -i "s#'/var/www/nextcloud'#'$nc_path'#" /usr/local/bin/nc-sharetoken-length

Danach einfach das Skript in der Konsole aufrufen, entweder als root (mit sudo) oder als den Webserver-User:

sudo nc-sharetoken-length

es fragt nach, was es tun soll und kann eigentlich nichts kaputt machen:

~# nc-sharetoken-length

This script looks up for the hardcoded sharetoken length on your nextcloud
server instance and gives you the means to change it.

The actual sharetoken length is set to 15
which results in
768,909,704,948,766,668,552,634,368
different possible variations

Enter new value (keep empty for no change): 2

The token length must be at least 4, as this is specified in
the min_token_length variable in line 19 of this script.
Set token length to 4? That would results in
14,776,336
different possible variations

Please confirm with y or accept the default rejection: [y/N]

Super, ich danke dir.
Werde ich morgen gleich im Testsystem ausprobieren und mich dann wieder melden.

THX

Es ist tatsÀchlich ein QR-Code mit aufgedruckt.Sowie die (derzeit zu Lange URL) und ein zufÀllig generiertes Passwort und Verfallsdatum.
Dieses wird fein sÀuberlich aufbereitet und ausgedruckt.
Das Problem ist das wir dieses generierte Zugangspaket keinesfalls per Email senden dĂŒrfen und unser Klientel grĂ¶ĂŸtenteils doch etwas Ă€lter ist, also nicht ganz so umgĂ€nglich mit dem Internet und IT-GerĂ€ten aber das wird sich schleichend in den nĂ€chsten Jahren Ă€ndern, außerdem hat der “Kunde” die Wahl diese Daten als Online-Zugang oder via CD zu bekommen. Das Ziel ist das wir wegkommen wollen von der CD/DVD Erstellung da die Massen an Rohlingen sowie die Brennroboter unwahrscheinlich teuer sind. Wir haben ein große Testumgebung sowie bereits einige aktive Nextcloud-Server im LAN die andere Daten verschlĂŒsselt bereitsstellen (Hardware Firewall-Cluster natĂŒrlich davor) sowie einige V-Server bei Dienstleistern mit Rechenzentrum in der BRD. Wir entwickeln ja nicht nur ausschließlich Software sondern administrieren (Sind ein Team in der IT) das HA-Cluster Server & Netzwerksystem.

DAS wĂ€re natĂŒrlich idealer, da wir einige eigene V-Server im I-Net betreiben haben wir da vollen Zugriff drauf.
Das mit dem Token-Einstellen scheint ja schnell gemacht zu sein.

THX

Ich wĂŒrde nicht so tief in Nextcloud Ă€ndern. SpĂ€testens einer Sicherheitsbewertung hĂ€lt diese Idee nicht stand, da sie in Nextcloud direkt in eine eigentlich nicht konfigurierbare Komponente eingreift.

Das Problem ist das wir dieses generierte Zugangspaket keinesfalls per Email senden dĂŒrfen

Schick doch den Link per E-Mail und nur das Passwort per Brief. Ist auch wirklich sicher durch zwei Kommunikationswege. Kannst die Shares auch durchnummerieren und bei Facebook fĂŒr die alten Leute öffentlich posten. Oder bei Twitter oder Mastodon. Passwort dann per Brief.

Klar du hast recht 

Wir sind im Medizinwesen unterwegs (Radiologie).
Per Post senden ist auch genau das wovon wir weg sollen und wollen da der Patient ja direkt vor Ort ist, dieser Mix aus Sicherheit und Handhabbarkeit ist echt eine BlutgrÀtsche.
NatĂŒrlich werden wir ĂŒberpĂŒft (Software), da kann das durchaus zum Thema werden aber dort soll dann der PrĂŒfer sagen wie es handbar und technisch machbar ist in dieser Konstellation.
Angedacht war ursprĂŒnglich das die Zugangsdaten ĂŒber eine Schnittstelle zur Generierungszeit direkt mit dem Befund ausgedruckt wird, da sind wir schon an der PrĂŒfung gescheitert da diese Daten dann im RIS (Radiologisches Informationssystem) fĂŒr jederman sichtbar ist, Vorgabe war dann “Nur dem Patienten dĂŒrfen diese Daten bekannt sein”, also generieren wir eine Freigabe (NC Token war der PrĂŒfer mit einverstanden) und ein zufĂ€llig generiertes Passwort (War der PrĂŒfer auch mit einverstanden), nur ein Andruck auf dem Befund wurde abgelehnt.

Die Sorge kann ich dir gleich nehmen. Du kannst es vergleichen mit der individuellen mime-type Behandlung und die Verwendung eigener Themes im themes Ordner, die mittels
occ maintenance:mimetype:update-js
auch VerÀnderungen tief im System vornimmt, die einem
occ integrity:check-core
nicht standhalten.
Da jedoch nach einem Update die Werte wieder auf Standard gesetzt sind und eigentlich nur dann ein integrity-check vom System durchgefĂŒhrt wird, fĂ€llt das nicht ins Gewicht und settings/admin/overview wird das weiterhin nicht anmeckern wenn das im Anschluss abgeĂ€ndert wird. Sollte irgendwann dann doch außerplanmĂ€ĂŸig ein Check durchgefĂŒhrt werden, dann muss mann eben

  • den Wert wieder auf 15 setzen
  • occ integrity:check-core ausfĂŒhren
  • den Wert wieder auf WunschlĂ€nge setzen

Genauso ist das mit der individuellen Mimetype/themes Handhabe, da muss in so einen Fall auch

  • die Datei core/js/mimetypelist.js wieder auf den Ursprungszustand zurĂŒckgesetzt werden (entweder aus einem Backup oder von github)
  • occ integrity:check-core ausgefĂŒhrt werden

um settings/admin/overview zum schweigen zu bringen.

Ich habe mir diese Schritte lÀngst auch schon alle in bash aliase verskriptet, damit alles immer mit einem Klick aufgerÀumt ist.

Geht alles. Ich wĂŒrde aber statt Nextcloud den Ablauf optimieren. Vielleicht langer Link und auch als QR-Code. Ist bei einigen Überweisungen nicht anders und IBANs sind auch lang.

1A, funktioniert.
Vielen Dank.

1 Like

Hast du dir auch das Skript dazu installiert, damit du es jederzeit wieder setzen bzw. zurĂŒcksetzen kannst falls der Integrity Check es mal anmeckern sollte wie ich beschrieben habe?

Erst mit dem Skript ist es eine stabile Lösung, die gewĂ€hrleistet, dass die Datei auch nicht kaputt geht durch falsches editieren und auch nach einem Update immer sofort wieder umgestellt werden kann, ohne lange suchen zu mĂŒssen :wink:

Moin,
hab ne eigene Routine geschrieben und in nen Cron-Job gepackt der jede Nacht nachschaut ob der Eintrag noch da ist.
Gruß

1 Like