Hallöle,
also ich schreibe gerade an einem Roulette-Programm, welches ich in einer schule testen will. Damit die Schüler, dass Programm nicht abändern, suche ich nach einer Möglichkeit es zu schützen.
gibt es da einen befehl oder ähnliches, welches ich einfügen kann, oder
was kann ich tun, damit alle Schüler aus den verschiedenen Klassen
letztendlich auch das gleiche programm dann vor sich haben?
MfG coma85
programm schreibgeschützt
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Kurz und knapp: Das geht quasi nicht!
Siehe u.a. auch hier:
http://www.python-forum.de/topic-4333.h ... sch%FCtzen
Gab schon viele solcher Threads
Du beschreibst noch nicht genau, was Du eigentlich mit dem Script erreichen willst. Evtl. kann man ja umgehen, dass die Schüler direkt den Code brauchen oder "nur" Client-Code bekommen, die Logik aber unerreichbar auf einem Server läuft?
Siehe u.a. auch hier:
http://www.python-forum.de/topic-4333.h ... sch%FCtzen
Gab schon viele solcher Threads
Du beschreibst noch nicht genau, was Du eigentlich mit dem Script erreichen willst. Evtl. kann man ja umgehen, dass die Schüler direkt den Code brauchen oder "nur" Client-Code bekommen, die Logik aber unerreichbar auf einem Server läuft?
na son mist ...
also die schüler sollen das programm nicht schreiben oder so, sie sollen es nur testen "sprich: roulette spielen"... geht um spielsucht und wahrscheinlichkeitsrechnung...
ich sag mal gleich dazu, bin in python weitestgehend ein "anfänger"...
hab zwar schon ein paar programme zum laufen gebracht, aber ich weiß jetzt nicht genau, was du mit code bezw. client-code usw. meinst
ich werde mit den schülern in ihrem informatikraum sein...
LG
also die schüler sollen das programm nicht schreiben oder so, sie sollen es nur testen "sprich: roulette spielen"... geht um spielsucht und wahrscheinlichkeitsrechnung...
ich sag mal gleich dazu, bin in python weitestgehend ein "anfänger"...
hab zwar schon ein paar programme zum laufen gebracht, aber ich weiß jetzt nicht genau, was du mit code bezw. client-code usw. meinst
ich werde mit den schülern in ihrem informatikraum sein...
LG
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Ist das nicht etwas, was sich mit Dateirechten loesen lassen sollte?
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hm... lesenden Zugriff brauchst Du ja aber in jedem Fall. Insofern kann sich das Script ja jeder in einen anderen Ordner kopieren (bei der er logischer weise Schreibzugriff hat) und den Code dort ändern. Oder worauf wolltest Du hinaus?Rebecca hat geschrieben:Ist das nicht etwas, was sich mit Dateirechten loesen lassen sollte?
@coma85: Naja, Du könntest das ganze zur Netzwerkapplikation "umbauen". Sprich, Du verpasst dem Script eben einer Netzwerkschicht, mit der ein (noch zu schreibender) Client mit dem Server (der enthält eben die wichtige Spiellogik) kommuniziert. Das sollte das ganze prinzipiell erst mal sicherer machen. Allerdings kann das je nach Applikation schon ein ziemlicher Aufwand sein...
Die Frage ist doch: Was genau befürchtest Du? Inwiefern spielt Manipulation da eine Rolle? Bist Du an Ergebnissen interessiert? (Sprich, speichert Deine Applikation Daten irgend wo hin, die Du auswerten willst?)
Auch wenn es einen generellen Schutz nicht gibt, gibt es eine Grenze, wo der Aufwand einer Manipulation höher ist als der daraus resultierende Nutzen.
Also, wenn die Schüler in der Lage sind durch die Manipulation des Codes ihre Zensuren zu ändern, wirst du dich anstrengen müssen, da sie wahrscheinlich Profis beauftragen werden, den Code zu knacken
Warum willst du den Code schützen? Welchen Anreiz haben die Schüler, ihn zu manipulieren?
Also, wenn die Schüler in der Lage sind durch die Manipulation des Codes ihre Zensuren zu ändern, wirst du dich anstrengen müssen, da sie wahrscheinlich Profis beauftragen werden, den Code zu knacken
Warum willst du den Code schützen? Welchen Anreiz haben die Schüler, ihn zu manipulieren?
würde es nicht eigentlich reichen, dass ganze in eine *.exe Datei umzuwandeln? (ich geh mal davon aus, dass in der Schule standardmäßig Windowsrechner stehen)
Dann können deine Schüler Roulette spielen und haben keine Chance im Quellcode zu fuschen.
Dann können deine Schüler Roulette spielen und haben keine Chance im Quellcode zu fuschen.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Es kommt drauf an: Wenn sie die exe tatsächlich quasi zu Beginn der Stunde bekommen und nur diese Stunde damit arbeiten sollen, dann wirds rein aus praktischen Gründen schwierig in der Zeit das ganze zu extrahieren und zurück in Python-Quell-Code zu verwandeln - noch dazu, wenn sie nicht wissen, dass es mal Python war und sie in solchen Dingen nicht bewandert sind.Pascal hat geschrieben:würde es nicht eigentlich reichen, dass ganze in eine *.exe Datei umzuwandeln? (ich geh mal davon aus, dass in der Schule standardmäßig Windowsrechner stehen)
Dann können deine Schüler Roulette spielen und haben keine Chance im Quellcode zu fuschen.
Sollten sie damit aber auch in weiteren Stunden arbeiten, relativiert sich diese Aussage massiv, da sie die exe ja mitnehmen können...
also es handelt sich um regelschüler/ realschüler, die wahrscheinlich noch nicht mit dem progrqamm gearbeitet haben. ich möchte ihre eingaben beim spiel extern speichern, um zu sehen, ob sie aufs ganze gehen (gleich alles verzocken) oder ob sie auf sicherheit spielen usw. ...
hab programmiert das diese eingaben extern gespeichert werden...
die schüler spielen immer nur eine stunde... dabei will ich neben roulette noch 2 weitere spiele programmieren.
meine befürchtung ist die, dass die schüler, wenn sie fertig sind, im quellcode rumschreiben und die nachfolgende Klasse nicht spielen kann... also dass ich nach jedem durchlauf, die programme neu aufspielen muss...
hab programmiert das diese eingaben extern gespeichert werden...
die schüler spielen immer nur eine stunde... dabei will ich neben roulette noch 2 weitere spiele programmieren.
meine befürchtung ist die, dass die schüler, wenn sie fertig sind, im quellcode rumschreiben und die nachfolgende Klasse nicht spielen kann... also dass ich nach jedem durchlauf, die programme neu aufspielen muss...
Ach so....coma85 hat geschrieben:meine befürchtung ist die, dass die schüler, wenn sie fertig sind, im quellcode rumschreiben und die nachfolgende Klasse nicht spielen kann... also dass ich nach jedem durchlauf, die programme neu aufspielen muss...
Das würde mir als erstes einfallen, das Programm in einen Ordner zu packen, wo die Schüler nur lesend zugreifen dürfen.
Aber auch das "neu aufspielen" lässt sich doch wunderbar automatisieren.
Übrigens: wenn euer PC-Pool ordentlich eingerichtet ist, hat eh jeder Schüler sein eigenes HOME-Verzeichnis, und er kann nur dort schreiben.
Ich bin selber Schüler und kann mit Sicherheit sagen, dass es den meisten aus meinen Informatikkurs die Programmierung scheiß egal ist.
Wenn du daraus eine *.exe-Datei machst kann auch niemand im Quellcode rumfuschen. Die einzige Gefahr sehe ich darin, dass die Schüler die Dateien, wo der Spielverlauf festgehalten wird, löschen, sofern sie denn an die Dateien kommen und ihre Bedeutung kennen.
Wenn du daraus eine *.exe-Datei machst kann auch niemand im Quellcode rumfuschen. Die einzige Gefahr sehe ich darin, dass die Schüler die Dateien, wo der Spielverlauf festgehalten wird, löschen, sofern sie denn an die Dateien kommen und ihre Bedeutung kennen.
Um dass zu beantworten musst du ein wenig über die Einrichtung in eurem PC-Pool verraten.coma85 hat geschrieben:wie kann ich es erreichen, dass der schüler nur lesend auf die datei zugriff hat?
Welches OS nutzt ihr?
Ich hoffe einfach mal, dass es bei euch nicht so ist, dass jeder Schüler einen Admin-Account hat (dann ist eh alles verloren ).
Also sollte jeder Schüler nur in seinem HOME-Verzeichnis Scheibrechte haben, und du musst das Programm einfach ordnungsgemäß (also wie bei dem entsprechenden OS üblich), in dem Ordner ablegen, wo die Programme sind, und der normale Nutzer nur lesen und eben nicht drauf schreiben darf.
Das Problem das bleibt ist natürlich, dass die Ergebnisse auch nur im Home-Verzeichnis gespeichert werden können, und der Schüler seine Ergebnisse dass einfach manipulieren oder löschen kann, wenn du sie im Klartext abspeicherst.
Das könntest du so lösen, dass du die Ergebnisse (oder sogar die Spielzüge) direkt auf einen Server überträgst. Musst dich dabei nur für eine Technik bzw. ein Protokoll entscheiden.
Oder du speicherst die Daten nicht im Klartext ab, was eine Manipulation erschwert, und drohst jedem Schüler mit Punktabzug, wenn er seine Ergebnisse nicht oder manipuliert übermittelt.
Es gibt viele Wege nach Rom...
Das könntest du so lösen, dass du die Ergebnisse (oder sogar die Spielzüge) direkt auf einen Server überträgst. Musst dich dabei nur für eine Technik bzw. ein Protokoll entscheiden.
Oder du speicherst die Daten nicht im Klartext ab, was eine Manipulation erschwert, und drohst jedem Schüler mit Punktabzug, wenn er seine Ergebnisse nicht oder manipuliert übermittelt.
Es gibt viele Wege nach Rom...
-
- User
- Beiträge: 41
- Registriert: Samstag 20. Juni 2009, 18:12
Und wenn man das Ding auf nen Server packt und per Webzugriff nutzen lässt?
Grüße[b]
start_with_python[/b]
Lust auf [url=https://www.dropbox.com/referrals/NTE5OTQ5Mjk5]DropBox[/url]? (RefLink)
start_with_python[/b]
Lust auf [url=https://www.dropbox.com/referrals/NTE5OTQ5Mjk5]DropBox[/url]? (RefLink)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Aber dann können die das ganze doch noch kopieren, oder nicht?Leonidas hat geschrieben:Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
Ja, aber es geht ja, wenn ich es richtig verstanden habe nicht darum, den Schülern den Code vorzuenthalten, sondern darum, ein Verfälschen der "Meßergebnisse" zu verhindern. Und so lange wie die "Messungen" immer nur mit dem unveränderten Original erfolgen, können die Schüler sich den Code doch so oft kopieren und verändern wie sie wollen.Hyperion hat geschrieben:Aber dann können die das ganze doch noch kopieren, oder nicht?Leonidas hat geschrieben:Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
Interessanter ist da schon die Frage, wie man die Meßergebnisse sicherstellt. Ein paar Anregungen gabs ja schon, aber es bleibt spannend.