STiNE-Interna
Willkommen bei der inoffiziellen Dokumentation von STiNE. Hier stehen unwichtige Details, die vielleicht später mal interessant werden können.
Verwendete Technik[Bearbeiten]
Webserver[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
Der Anwendungsname ist immer ''CampusNet''.
PRGNAME[Bearbeiten]
Der Programmname bezeichnet das Programm, das die Anfrage bearbeitet. Es gibt auch eine Liste der von uns dokumentierten STiNE-Module.
ARGUMENTS[Bearbeiten]
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[Bearbeiten]
- A: Alphanumerisch
- D: ? (vielleicht Datum? Stattdessen wird in STiNE A benutzt.)
- F: ? (vielleicht Float?)
- L: ? (vielleicht Long)
- 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: ? (vielleicht Unsigned)
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[Bearbeiten]
- -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[Bearbeiten]
- 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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
- 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[Bearbeiten]
Feldbreite eines numerischen Feldes bestimmen[Bearbeiten]
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.