[3.2] Sicherheitslösung MultiFileUpload

Im Entwickler-Forum können Implementierungsdetails sowie Alternativen der Umsetzung diskutiert werden. // Here, developers can discuss implementation details of features of their projects.
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 21.03.2016, 16:28:22

dr.e. hat geschrieben: Asche über mein Haupt, habe es am Wochenende wieder nicht geschafft zu antworten - sorry. :( :roll:
Null Problemo! Wir machen das hier doch nur nebenbei, aus Spass an der Freude.
dr.e. hat geschrieben:
Daran habe ich schon gedacht und die Funktion isAllowed eingeführt. Wir können diese natürlich in den Namen allowExecution ändern :) Leider habe ich gleichzeitig den Namen auch nochmal in der Funktion addAction verwendet. Das hat evtl. zu etwas Verwirrung gesorgt. Das habe ich angepasst.
Genau. Allerdings sehe ich noch keine Änderung im Action-Interface, damit du auch

Code: Alles auswählen

$this->actionStack[$offset]->allowExecution() 
abfragen kannst. Wo finde ich das?
Ja, das liegt daran, das ich das ganze noch nicht unbenannt habe und es immer noch isAllowed heisst. :lol:
Ich habe es jetzt aber endgültig angepasst. ;)
https://github.com/der-dave/APF-code-3. ... e5fbac8398

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 22.03.2016, 15:09:59

Jetzt sehe ich das! :) Ich schlafe nochmal drüber, bin mir grade nicht sicher, ob das mit dem PermissionCheck nicht doch reundant ist. Es würde IMHO doch auch reichen, wenn ich die Action frage, ob allowExecution() auch true zurück gibt. Auf den Stack könnte ich sie doch dann trotzdem legen...

Melde mich nochmal! :)
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 22.03.2016, 17:14:49

Ok, ich verstehe zwar nicht ganz, was du genau meinst, aber du wirst mir das sicher dann nochmal erklären. Denk ganz in Ruhe darüber nach.
Das ist ja auch nur ein Lösungsvorschlag von mir, entsprechend dem Eintrag im Tracker. Bei der Lösung bin ich ja sehr flexibel ;)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 22.03.2016, 17:43:45

Hi dave,

im Endeffekt geht es doch darum, dass die Ausführung einer Action geschützt werden soll - im UMGT z.B. über einen Check, ob du einen eingeloggten Benutzer in der Hand hast. Um das sicher zu stellen, reicht es doch entweder aus in der Upload-Action des UMGT einen eigenen Check zu implementieren und in der run()-Methode z.B. eine Exception zu werfen, wenn kein Benutzer vorhanden ist.

Möchte ich das ein wenig generischer halten, könnten wir doch dem Front-Controller ein Feature spendieren, bei dem der Front-Controller jede Action fragt, ob sie ausgeführt werden darf - genauso fragt er ja eine Action bereits ob sie aktiv ist um beispielswise nicht in jedem Request ausgeführt zu werden - oder eben nicht.

Für das UMGT implementieren wir die Action dann so, dass sie bei allowExecution() ein false liefert, wenn kein eingeloggter Benutzer vorhanden ist und ansonsten true. Wenn mein Gedanke richtig ist, reicht die Erweiterung des Action-Interfaces um die Methode allowExecution(), die Standard-Implementierung dieser in AbstractFrontControllerAction und die Erweiterung der Methode Frontcontroller::runActions() um die Abfrage auf allowExecution().

Die Methode addAction() müssen wir doch dafür nicht anpassen, da sie die Erlaubnis ja effektiv in Frontcontroller::runActions() geprüft wird. Im Gegenteil könnte das sogar zu Schwierigkeiten führen, da du ja in Action::isActive() die Möglichkeit hast, den Action-Stack abzufragen und in deiner Action zu entscheiden nicht aktiv zu sein, wenn eine andere Action auf dem Stack liegt.

Was denkst du?
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 23.03.2016, 16:41:51

Hi Christian,

selbstverständlich ist dieses Verfahren ausreichend. Um es kurz zu machen können wir uns darauf einigen. Die Anpassungen dafür habe ich ja bereits vorgenommen, ich werde lediglich nochmal die addAction-Methode auf Original bringen, dann sollte alles passen.

Im nächsten Schritt werde ich den MultiFileUpload in Ordnung bringen, da fehlen ein paar Files.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 23.03.2016, 21:11:22

Hi dave,

mir geht es weniger darum, dass wir uns auf meine Meinung einigen! ;) Ich lasse mich immer gerne von einer guten lösung überzeugen - nicht dass das falsch angekommen ist. Was ich zum Ausdruck bringen wollte: ich hatte nur irgendwie noch kein ausreichend gutes Gefühl mit der (Doppel-)Lösung! :roll: :D

Wenn du (trotzdem) einverstanden bist, dann stelle gerne einen Pull-Request und ich merge das entsprechend. Kümmerst du dich auch um das Update der Doku?
Im nächsten Schritt werde ich den MultiFileUpload in Ordnung bringen, da fehlen ein paar Files.
Oh ja, das ist eine super Idee. Wäre da nicht auch http://tracker.adventure-php-framework. ... .php?id=99 eine gute Ergänzung dazu? Ich denke die Doku im Wiki unter http://wiki.adventure-php-framework.org/MultiFileUpload ist auch nicht mehr 100% auf Höhe der Zeit...
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 23.03.2016, 22:57:00

Nein, ich habe das schon richtig verstanden. Alles gut. Ich bin ja bei weitem nicht der Experte. Ich schätze deine Einschätzungen sehr!

Ja, den Pull Request nehme ich in Angriff. Die Dokus gehören für mich natürlich ebenfalls dazu.
Im Zuge des "Reparierens" vom MultiFileUpload werde ich auch die Wiki-Doku in die offizielle Doku einbauen. Das wird aber erst nach Ostern was. 3.2 soll ja am 30.04. relaesed werden. Bis dahin schaffe ich das 8-)

EDIT:
Pull Request: https://github.com/AdventurePHP/code/pull/15
Alles weitere dann nach Ostern.

Ich wünsche ein paar erholsame Tage :)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 26.03.2016, 20:36:11

Hallo dave,

vielen Dank für deinen Pull-Request habe ich direkt gemerged. :)
Die Dokus gehören für mich natürlich ebenfalls dazu.
Perfekt, vielen Dank!
Im Zuge des "Reparierens" vom MultiFileUpload werde ich auch die Wiki-Doku in die offizielle Doku einbauen. Das wird aber erst nach Ostern was. 3.2 soll ja am 30.04. relaesed werden. Bis dahin schaffe ich das 8-)
Sehr schön!

Vielen Dank für dein Engagement! Hab du auch ein paar schöne und erholsamme Tage über Ostern! :)
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 28.03.2016, 00:24:45

Hallo dave,

ich habe in den letzten beiden Tagen noch ein wenig am Front-Controller geschraubt und einige Unit Tests hinzugefügt. Diese helfen bei der Implementierung von neuen Features nun die bestehende Funktionalität abzusichern. Deine Neuerung habe ich auch gleich mit abgedeckt. :)
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 29.03.2016, 17:52:38

Sehr gute Arbeit.
Sehr schön, dass registerAction raus fliegt. Ich habe gesehen, dass du die Doku bereits geändert hast. Ich werde nun noch ein weitere Kapitel 6.3 für das Prüfen der Berechtigung hinzufügen.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dave » 30.03.2016, 18:46:38

Doku ist damit auch aktualisiert: https://github.com/AdventurePHP/docs/pull/3/files
Wenn du soweit einverstanden bist kann der Eintrag #133 im Tracker dann geschlossen werden.

Ich mache mit dem Eintrag #099 für den MultiFileUpload weiter. Das wird auch defintiv noch für die Version 3.2. fertig.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [3.2] Sicherheitslösung MultiFileUpload

Beitrag von dr.e. » 31.03.2016, 15:51:58

Hi dave,

danke dafür, merge den Pull-Request sobald ich wieder am Rechner sitze! :) (EDIT: erledigt!) ID#133 können wir dann natürlich schließen.

Danke, dass du auch den anderen Task übernimmst! Dann sind wir mit 3.2 auf der Zielgeraden! Mein Task ist auch schon fast fertig was die Implementierung angeht, die Doku steht noch aus.

Bis bald! :)
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast