Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neue Action: attach_file hängt Dateien an, die auf dem Server existieren #99

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

alxndr-w
Copy link
Member

No description provided.

@alxndr-w alxndr-w self-assigned this Mar 14, 2025
@alxndr-w
Copy link
Member Author

Problemstellung: Welche Verzeichnisse sollen erlaubt sein / wie viel Flexibilität darf einem Entwickler hier gegeben werden? data-Addon-Verzeichnis, cache-Addon-Verzeichnis o.a.?

Lösungsmöglichkeiten:

  • symlink von erlaubten Verzeichnissen nach "außerhalb"
  • Immer nur in data/addon-Verzeichnissen, die existieren und aktiviert sind
  • Immer nur in project? (weniger Parameter, weniger Aufwand innerhalb dieser Action)

@christophboecker
Copy link
Contributor

Ich geb mal meinen Freitags-Senf dazu: Ich würde den Entwickler nicht zu sehr an die Kandare nehmen. Es lebe die Eigenverantwortung. Soll er/sie/es doch nehmen welchen Pfad sie wollen. Im Mediamanager kann man ja auch jeden beliebigen Pfad angeben.

Wichtig ist aus Sicherheitsgründen eigentlich nur, dass man nicht aus dem zugelassenen Verzeichnis ausbrechen kann. Also einen relativen Pfad angibt (../../../dateiname) und damit an unzulässige Stellen (zulässigerPfad/../../../dateiname) kommt. Kann man ja abfangen, indem der realpath berechnet wird, und der muss wieder aus zulässigerPfad rauskommen.

@alxndr-w
Copy link
Member Author

Man könnte allerdings etwas machen wie ../../core/config.yml und diese mit anhängen, wenn man nur das data-Verzeichnis erlaubt. Also generell würde ich sagen, dass es irgendwie schon mit realpath per se auf /data/addons/addon/* oder /cache/addons/addon/* beschränkt bleiben sollte und nicht bspw. auf der Document-Root-Ebene.

@christophboecker
Copy link
Contributor

Hab mich unklar ausgedrückt. Mein Gedanke war: genau ein Verzeichnis! ohne Unterverzeichnisse! Was möglicherweise wieder zu stark einschränkt.

Ich verstehe Dein Problem. :-)

@alxndr-w
Copy link
Member Author

Mir ist die ganze Aufgabe im Rahmen von FriendsOfREDAXO/warehouse#49 begegnet, wo sich mir die Frage stellt:

Sollen solche Dateien dann nicht in data/addons/warehouse liegen und nicht in data/addons/project. Gibt es sinnvolle Gründe, auch mal eine Medienpool-Datei auf diese weise anzuhängen oder sollte es dafür eine eigene Action geben? Dann könnte man noch /media/* freigeben.

Ich denke, bei /media/ sollten Unterverzeichnisse verboten sein. Bei /data/addons/* und `/cache/addons/* gibt's ja legitime Gründe, auch Unterverzeichnisse verwenden zu dürfen.

Als Entwickler sollte man sich darüber im Klaren sein, was die Konsequenz ist, bspw. das YForm-Modul freizugeben und hier Actions reinzuladen, die Dateien offenlegen können. Aber das ist ja mit der PHP-Action eh schon ein offenes Scheunentor.

Soweit mein innerer Monolog. Ich denke, jetzt ist mir zumindest klar, was ich tun muss! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants