STiNE-Interna: Unterschied zwischen den Versionen
fsrwiki_>1illig K (+ stine-ids) |
fsrwiki_>Oddmuse Import K (link fix) |
||
Zeile 1: | Zeile 1: | ||
Willkommen bei der inoffiziellen Dokumentation von STiNE. Hier stehen unwichtige Details, die vielleicht später mal interessant werden können. | Willkommen bei der inoffiziellen Dokumentation von [[STiNE]]. Hier stehen unwichtige Details, die vielleicht später mal interessant werden können. | ||
= Verwendete Technik = | = Verwendete Technik = | ||
== Webserver == | == Webserver == | ||
STiNE scheint auf einem Server zu laufen, auf dem Microsoft Windows installiert ist und den IIS 6.0 als HTTP-Server verwendet | [[STiNE]] scheint auf einem Server zu laufen, auf dem Microsoft Windows installiert ist und den IIS 6.0 als HTTP-Server verwendet | ||
Server: Microsoft-IIS/6.0 | Server: Microsoft-IIS/6.0 | ||
Zeile 14: | Zeile 14: | ||
= Zugriff = | = Zugriff = | ||
STiNE ist unter der URL https://www.stine.uni-hamburg.de/scripts/mgrqispi.dll erreichbar. | [[STiNE]] ist unter der URL https://www.stine.uni-hamburg.de/scripts/mgrqispi.dll erreichbar. | ||
Dieser URL werden die Parameter ''APPNAME'', ''PRGNAME'' und ''ARGUMENTS'' übergeben. | Dieser URL werden die Parameter ''APPNAME'', ''PRGNAME'' und ''ARGUMENTS'' übergeben. | ||
Zeile 42: | Zeile 42: | ||
* '''A''': Alphanumerisch | * '''A''': Alphanumerisch | ||
* '''D''': ? (vielleicht Datum? Stattdessen wird in STiNE '''A''' benutzt.) | * '''D''': ? (vielleicht Datum? Stattdessen wird in [[STiNE]] '''A''' benutzt.) | ||
* '''F''': ? (vielleicht Float?) | * '''F''': ? (vielleicht Float?) | ||
* '''L''': ? | * '''L''': ? | ||
Zeile 48: | Zeile 48: | ||
* '''U''': ? | * '''U''': ? | ||
Datumsangaben werden in STiNE als alphanumerische Felder übergeben, die aus drei durch '''.''' getrennten Feldern für Tag, Monat und Jahr bestehen. Diese Felder werden jeweils wie numerische Argumente interpretiert. | Datumsangaben werden in [[STiNE]] als alphanumerische Felder übergeben, die aus drei durch '''.''' getrennten Feldern für Tag, Monat und Jahr bestehen. Diese Felder werden jeweils wie numerische Argumente interpretiert. | ||
Wenn als Datentyp ein anderer als die oben genannten Buchstaben übergeben wird, wird der komplette Parameter ignoriert. Beispiel: ''-Afoobar,-N32'' ist äquivalent zu ''-Bwhatever,-Afoobar,-Cx,-N32,-Wall''. | Wenn als Datentyp ein anderer als die oben genannten Buchstaben übergeben wird, wird der komplette Parameter ignoriert. Beispiel: ''-Afoobar,-N32'' ist äquivalent zu ''-Bwhatever,-Afoobar,-Cx,-N32,-Wall''. | ||
Zeile 75: | Zeile 75: | ||
Bei wichtigen Transaktionen muss eine iTAN eingegeben werden. | Bei wichtigen Transaktionen muss eine iTAN eingegeben werden. | ||
Die iTANs werden nicht ungültig, sobald sie am Bildschirm angezeigt werden. Das geschieht erst, nachdem sie benutzt wurden. Wenn man eine falsche TAN eingibt, wird weiterhin die alte verlangt. Sollte man dreimal die selbe TAN angeben, wird der gesamte TAN-Block ungültig (laut STiNE). | Die iTANs werden nicht ungültig, sobald sie am Bildschirm angezeigt werden. Das geschieht erst, nachdem sie benutzt wurden. Wenn man eine falsche TAN eingibt, wird weiterhin die alte verlangt. Sollte man dreimal die selbe TAN angeben, wird der gesamte TAN-Block ungültig (laut [[STiNE]]). | ||
Speziell bei Passwort/Sicherheitsfrage ändern (CHANGEPWD) und neuen TAN Block anfordern (TANNEWBLOCK) wird pro Aufruf eine andere iTAN verlangt. Das heißt, wenn man sich nur 5 iTANs gemerkt hat, drückt man einfach ein paarmal auf F5, bis eine passende kommt. | Speziell bei Passwort[[/Sicherheitsfrage]] ändern (CHANGEPWD) und neuen TAN Block anfordern (TANNEWBLOCK) wird pro Aufruf eine andere iTAN verlangt. Das heißt, wenn man sich nur 5 iTANs gemerkt hat, drückt man einfach ein paarmal auf F5, bis eine passende kommt. | ||
= Automatisches Ausloggen = | = Automatisches Ausloggen = | ||
Zeile 85: | Zeile 85: | ||
= Identifikation des Benutzers = | = Identifikation des Benutzers = | ||
In jedem Mehrbenutersystem muss sichergestellt werden, dass Benutzer eindeutig identifiziert werden können. Bei STiNE ist die Session-ID der erste Parameter und wird in der URL übergeben. Das heißt, wenn jemand einen externen Link bereitstellt und den Webserver dahinter kontrolliert, kann er die Session-ID abrufen. | In jedem Mehrbenutersystem muss sichergestellt werden, dass Benutzer eindeutig identifiziert werden können. Bei [[STiNE]] ist die Session-ID der erste Parameter und wird in der URL übergeben. Das heißt, wenn jemand einen externen Link bereitstellt und den Webserver dahinter kontrolliert, kann er die Session-ID abrufen. | ||
== Sicherheitsüberprüfungen == | == Sicherheitsüberprüfungen == | ||
Zeile 94: | Zeile 94: | ||
* '''A''': Ja | * '''A''': Ja | ||
* '''F''': Kann man STiNE ohne Referrer benutzen? | * '''F''': Kann man [[STiNE]] ohne Referrer benutzen? | ||
* '''A''': Ja | * '''A''': Ja | ||
* '''F''': Kann man STiNE ohne Cookies benutzen? | * '''F''': Kann man [[STiNE]] ohne Cookies benutzen? | ||
* '''A''': Ja | * '''A''': Ja | ||
Version vom 6. November 2007, 04:26 Uhr
Willkommen bei der inoffiziellen Dokumentation von STiNE. Hier stehen unwichtige Details, die vielleicht später mal interessant werden können.
Verwendete Technik
Webserver
STiNE scheint auf einem Server zu laufen, auf dem Microsoft Windows installiert ist und den IIS 6.0 als HTTP-Server verwendet
Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET
Middleware
Als Middleware kommt eDeveloper von der Firma Magic Software zum Einsatz, und es gibt sogar Dokumentation dazu. Die DLL dient laut einem Dokument auf dem FTP (nur noch im Google-Cache verfügbar) als Schnittstelle zwischen Webserver und Programm.
Zugriff
STiNE ist unter der URL https://www.stine.uni-hamburg.de/scripts/mgrqispi.dll erreichbar.
Dieser URL werden die Parameter APPNAME, PRGNAME und ARGUMENTS übergeben.
APPNAME
Der Anwendungsname ist immer ''CampusNet''.
PRGNAME
Der Programmname bezeichnet das Programm, das die Anfrage bearbeitet. Es gibt auch eine Liste der von uns dokumentierten STiNE-Module.
ARGUMENTS
Der Parameter ARGUMENTS kann auf zwei Arten übergeben werden:
- Übergabe via HTML-Formular: Der CGI-Parameter ARGUMENTS enthält die Namen der weiteren Parameter.
ARGUMENTS=sessionno,menuid,date&sessionno=325924988077839&menuid=282&date=10.10.2006
- Direkte Übergabe als CGI-Parameter:
ARGUMENTS=-N325876803934659,-N282,-A10.10.2006
Datentypen
- A: Alphanumerisch
- D: ? (vielleicht Datum? Stattdessen wird in STiNE A benutzt.)
- F: ? (vielleicht Float?)
- L: ?
- N: Numerisch; alle Zeichen außer den Ziffern werden ignoriert. Die dann übriggebliebene Zahl wird übernommen, und falls zu viele Ziffern angegeben werden, werden nur die ersten n Ziffern weiterverarbeitet.
- U: ?
Datumsangaben werden in STiNE als alphanumerische Felder übergeben, die aus drei durch . getrennten Feldern für Tag, Monat und Jahr bestehen. Diese Felder werden jeweils wie numerische Argumente interpretiert.
Wenn als Datentyp ein anderer als die oben genannten Buchstaben übergeben wird, wird der komplette Parameter ignoriert. Beispiel: -Afoobar,-N32 ist äquivalent zu -Bwhatever,-Afoobar,-Cx,-N32,-Wall. Ansonsten ist es egal, welcher Datentyp angegeben wird solange es ein gültiger ist.
Eingabevariationen für Datumsangaben
- -A29.02.2001: Das Datum wird nicht angezeigt und als 00.00.0000 weiterverarbeitet.
- -A35.05.1899: wartung.htm
- -A00.00.00: wartung.htm
- -A1.8.2: wie 01.08.2002
- -A1.1.0001: wie 01.01.0001
- -A02.01.987654: nur die ersten vier Ziffern der Jahreszahl werden verarbeitet.
- -A01.01.3x12: wie 01.01.2212
- -A01.01.20x05: wie 01.01.2005
- -N20061009: wie 00.00.0000
Gemeinsame Parameter für alle Programme
- sessionno (15N): Die Session-ID
- menuid (6N): Die Kennzahl für das Menü, das links angezeigt wird.
- Alles ab dem dritten Parameter hängt vom einzelnen Programm ab. Es gibt nur wenige Ausnahmen wo der zweite Parameter nicht die menuid ist.
Besondere Beachtung sollten die STiNE-IDs bekommen.
iTANs
Bei wichtigen Transaktionen muss eine iTAN eingegeben werden. Die iTANs werden nicht ungültig, sobald sie am Bildschirm angezeigt werden. Das geschieht erst, nachdem sie benutzt wurden. Wenn man eine falsche TAN eingibt, wird weiterhin die alte verlangt. Sollte man dreimal die selbe TAN angeben, wird der gesamte TAN-Block ungültig (laut STiNE).
Speziell bei Passwort/Sicherheitsfrage ändern (CHANGEPWD) und neuen TAN Block anfordern (TANNEWBLOCK) wird pro Aufruf eine andere iTAN verlangt. Das heißt, wenn man sich nur 5 iTANs gemerkt hat, drückt man einfach ein paarmal auf F5, bis eine passende kommt.
Automatisches Ausloggen
Wenn eine unerwartete Situation auftritt (beispielsweise unbekannter PRGNAME), erscheint die Fehlermeldung Schließen Sie bitte Ihren Browser und starten Sie die Sitzung erneut.. Eingeloggt ist man aber weiterhin, so dass man mit dem Zurück-Button weitermachen kann.
Identifikation des Benutzers
In jedem Mehrbenutersystem muss sichergestellt werden, dass Benutzer eindeutig identifiziert werden können. Bei STiNE ist die Session-ID der erste Parameter und wird in der URL übergeben. Das heißt, wenn jemand einen externen Link bereitstellt und den Webserver dahinter kontrolliert, kann er die Session-ID abrufen.
Sicherheitsüberprüfungen
- F: Kann man während einer Session die IP wechseln?
- A: Nein, die ursprüngliche Verbindung wird dabei auch nicht benachrichtigt.
- F: Kann man während einer Session den Browser wechseln?
- A: Ja
- F: Kann man STiNE ohne Referrer benutzen?
- A: Ja
- F: Kann man STiNE ohne Cookies benutzen?
- A: Ja
HOWTOs
Feldbreite eines numerischen Feldes bestimmen
Da bei einem n Ziffern langen Feld auch nur die ersten n Ziffern verarbeitet werden, kann man einfach von links so lange Nullen nachschieben, bis das Feld vom Programm als 0 interpretiert wird. Zum Beispiel beim Terminkalender, 6. Parameter:
- 000000000000001 liefert einen Raumplan,
- 0000000000000001 liefert einen Stundenplan
Damit ist klar, dass das Feld den Typ 15N hat. Führende Nullen können anscheinend weggelassen werden.