You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ort? Sicherlich im Dateisystem, local cache vs. "normaler" cache Ordner (macht bei geclusterten Umgebungen einen Unterschied)
Dateien müssen regelmäßig wieder aufgeräumt/gelöscht werden.
in der URL ist der Paket-Hash enthalten, keine Fragen-/Attempt ID oder Ähnliches
dadurch können die Dateien beliebig lange im Browser-Cache verbleiben
die URL zu derselben Datei (im selben Paket) bleibt auch über Fragen hinweg gleich
Die statischen Dateien (in Abgrenzung zu static-private) dürfen öffentlich abgerufen werden. Dies ermöglicht die Nutzung des Features ABORT_AFTER_CONFIG, d.h. das PHP-Script muss keine Datenbank-Verbindung aufbauen oder Sessions managen. Das hat auch den Vorteil, dass kein Session-Locking geschieht und die Dateien parallel heruntergeladen werden können.
Wenn eine Datei nicht im Cache liegt, kann es sinnvoll sein, Locks zu benutzen, damit nicht aus mehreren Prozessen heraus ein Download beim QPy-Server gestartet wird (Szenario Klausurbeginn).
Wenn eine Datei nicht im Cache liegt, sollte geprüft werden, ob die Datei überhaupt im Paket enthalten ist, bevor der QPy-Server kontaktiert wird.
Wie damit umgehen, dass ein Angreifer den Moodle-Server gezielt dazu bringt, sämtliche statische Dateien in QPy-Paketen zu laden? (Szenario das Paket-Repo umfasst irgendwann ganz viele Pakete und in Summe belegen die statischen Dateien mehr Speicher als eine kleine Moodle-Instanz verfügbar hat -> DoS).
Bei im Cache fehlenden Dateien doch die User-Session prüfen? In Quizzes kann man das gut machen, da Quizzes ohnehin nur von Usern (nicht von Gästen) aufgerufen werden können. Andererseits können die Fragen aber auch in anderen Aktivitäten verwendet werden, die diese Einschränkung möglicherweise nicht haben.
Tracken, welche Pakete (Hashes) tatsächlich in der Moodle-Instanz verwendet werden (wird schwieriger, wenn wir dynamische Abhängigkeiten haben)?
The text was updated successfully, but these errors were encountered:
Zielvorstellung/-gedanken:
ABORT_AFTER_CONFIG
, d.h. das PHP-Script muss keine Datenbank-Verbindung aufbauen oder Sessions managen. Das hat auch den Vorteil, dass kein Session-Locking geschieht und die Dateien parallel heruntergeladen werden können.The text was updated successfully, but these errors were encountered: