PmWikiDe

Uploads Admin

PmWikiDe.UploadsAdmin History

Hide minor edits - Show changes to output

Changed line 1 from:
http://10rciaonline.com/ , ) Lyrics Lyrics Lyrics not available for this song.
to:
http://cheapvagratlonline.com/ ,  is much of Levitra, brand name or need a solid erection for about an hour.  
October 07, 2016, at 03:57 PM by tadalafil - urwerroi
Changed lines 1-266 from:
(:title Verwaltung der Anhänge:)
(:Summary: Administration des Hochladens von Dateien (Anhängen) mit Hilfe des Webbrowsers auf den Wiki-Server:)
(:Original_Page: PmWiki.{$Name}:)
(:Translation_Date: 2011-05-11:)
(:Translation_Status: %green%fertig%%:)
(:Audience: Administratoren:)


[[PmWiki]] enthält ein Modul ''upload.php'', welches dem Benutzer erlaubt, Dateien mit Hilfe eine Webbrowsers auf den Wiki-Server [[PmWiki.Uploads|hochzuladen]].  Hochgeladene Dateien, die Anhänge (auch ''attachments'' genannt), können leicht mittels Verknüpfungen auf den Wikiseiten angesprochen werden. Diese Seite beschreibt, wie die Upload-Funktion installiert und konfiguriert wird.


!!Ein paar Hinweise zur [[Security|Sicherheit]]

PmWiki nimmt eine einigermaßen, aber vertretbare, paranoide Haltung ein, wenn es um das Hochladen von Dateien geht. Daher tendieren nach der Aktivierung der Upload-Funktion die Standardeinstellungen dazu, das Feature so weit wie möglich einzuschränken:

* Die Upload-Funktion ist standardmäßig deaktiviert.
* Im Falle der Aktivierung ist der Upload standardmäßig mit einem Passwort versehen.
* Selbst wenn das Passwort gelöscht wird, ist das Hochladen auf bestimmte Dateinamen, -größen und -endungen eingeschränkt, damit kein Missbrauch entstehen kann.
* Die erlaubten Zeichen in Dateinnamen sind: Buchstaben (A-Z, a-z), Ziffern (0-9), Bindestrich (-), Unterstrich(_), Punkt (.) und Leerzeichen ([[#restriktinguploadedfiles|siehe auch hier]]]. Anmerkung: Manche Browser haben mit Leerzeichen so Ihre Probleme.
* Die maximale Uploadgröße ist sehr klein (50K - voreingestellt).

Durch diese Regeln ist das Zerstörungspotential gering, es sei denn der Wiki-Administrator hat die Regeln ausdrücklich gelockert.

Behalten Sie im Auge, dass es eine Menge Risiken mit sich bringt, anonymen Benutzern zu erlauben, Dateien auf Ihren Webserver hochzuladen.
Das ''upload.php''-Skript ist entworfen, die Gefährdung zu reduzieren, aber [[WikiAdministrator|Wiki-Administratoren]] sollten sich bewusst sein, dass das Potential für Angreifbarkeit besteht, und dass Fehlkonfiguration der Hochlade-Werkzeuge zu unerwünschten Konsequenzen führen können.

Standard ist, dass authorisierte Benutzer fähig sind, Dateien zu überschreiben, die bereits hochgeladen sind, ohne die Möglichkeit, den vorigen Zustand wieder herzustellen. Wenn man Benutzern die Erlaubnis entziehen will, Dateien zu überschreiben, die schon vorhanden sind, fügt man die folgende Zeile in die ''config.php'' hinzu.

->[@$EnableUploadOverwrite = 0;@]

Allerdings kann ein Administrator auch ältere Dateiversionen behalten. Siehe dazu: [[#upload_versions|Versionierung hochgeladener Dateien]].

Ein Administrator kann PmWiki auch so [[#direct_download|konfigurieren]], dass der Passwortmechanismus den Zugriff auf hochgeladene Dateien regelt.


!!Grundinstallation

Das ''upload.php'' Script wird automatisch in ''stdconfig.php'' einbezogen, wenn die $EnableUpload Variable in  ''config.php'' auf wahr (true) gesetzt ist.  Zusätzlich können in ''config.php'' die $UploadDir- und die $UploadUrlFmt-Variable gesetzt werden, um das lokale Verzeichnis, in dem die hochgeladenen Dateien gespeichert werden sollen, und der URL, der für den Zugriff benutzt werden kann, anzugeben.  Im Standard sind $UploadDir und $UploadUrlFmt so eingestellt, das Anhänge in einem Verzeichnis ''uploads/'' innerhalb des aktuellen Verzeichnisses gespeichert werden (gewöhnlich das Verzeichnis, das ''pmwiki.php'' enthält). Zusätzlich sollte in ''config.php'' ein voreingestelltes Uploadpasswort eingestellt werden (siehe [[PasswordsAdmin|+]]).

Demnach sieht eine Grundeinstellung in ''config.php'' für Anhänge wie folgt aus:

->[@
<?php if (!defined('PmWiki')) exit();
# Ermögliche Uploads und setze ein site-weites Passwort.
$EnableUpload = 1;
$DefaultPasswords['upload'] = crypt('secret');
@]

Wenn Sie Bearbeiten-Passwörter haben und allen Benutzern mit Bearbeiten-Rechten auch das Recht für das Hochladen einräumen wollen, setzen Sie statt $DefaultPasswords['upload'] eher  @@$HandleAuth['upload'] = 'edit';@@ in ''config.php''.
 
'''Wichtig''': Legen Sie noch KEIN Upload-Verzeichnis an! Siehe nächster Absatz.

Möglicherweise müssen Sie auch das Verzeichnis explizit setzen, dass die hochgeladenen Dateien speichern soll, und einen URL zu diesem Verzeichnis angeben, so wie hier:

->[@
$UploadDir = "/home/john/public_html/uploads";
$UploadUrlFmt = "http://www.john.com/~john/uploads";
@]

[[#uploaddirectoryconfiguration]]
!!! Upload-Verzeichnis-Konfiguration

Anhänge können site-übergreifend, gruppen-bezogen (Standard) oder pro Seite konfiguriert werden, indem [=$UploadPrefixFmt=] angepasst wird. Das bestimmt, ob alle Anhänge in ein gemeinsames Verzeichnis für die gesamte Site gesetzt wird, in ein individuelles für jede Gruppe oder individuell für jede einzelne Seite. Die Voreinstellung steht auf gruppenweises Speichern.

''Es wird empfohlen, dass die $UploadPrefixFmt-Variable, die in ''config.php'' definiert wird, für alle Seiten im Wiki die gleiche ist, und nicht verschieden in gruppen- oder seiten-bezogenen Verzeichnissen. Andernfalls sind sie '''''nicht''''' in der Lage auf Anhänge in anderen Wikigruppen zu verweisen.''

!!!! Ein Verzeichnis für alle
[[#sitewideprefix]]
Für ein site-weites Uploadverzeichnis setzt man

->[@$UploadPrefixFmt = '';@]
!!!! Ein Verzeichnis für jede Gruppe
Das ist die Standardeinstellung, deshalb muss man nicht aktiv werden, wenn einem das so gefällt.

$UploadPrefixFmt = '/$Group'; # das ist der Standard

!!!! Ein Verzeichnis für jede Seite
Für seitenweises Speichern benutzt man eine dieser Einstellungen:

->[@
$UploadPrefixFmt = '/$FullName';
$UploadPrefixFmt = '/$Group/$Name';
@]

Sie mögen es es vorziehen, Anhänge an die Seiten zu binden, eher als an die Gruppen oder die ganze Site, wenn Sie viele Anhänge pro Seite erwarten. Diese Einstellung vereinfacht das Management beispielsweise von Bildergallerien. (In einer Seite kann man immer auf Anhänge anderer Seiten verweisen.)%red%???%%

 
!!!Das Uploadverzeichnis

Damit die Uploadfunktion sauber arbeitet, muss das durch $UploadDir angegebene Verzeichnis vom Webserverprozess beschrieben werden können, und es muss gewöhnlich an einem Ort liegen, auf den vom Web aus zugegriffen werden kann (z. B. in einem Unterverzeichnis von ''public_html''). Wird PmWiki mit aktiviertem Upload ausgeführt, werden Sie aufgefordert, einen Satz von Schritten zu Eingabe von Daten abzuarbeiten, die zur Einrichtung des Upload-Verzeichnisses auf dem Server nötig sind (von Server zu Server etwas unterschiedlich). ''Beachten Sie, dass ggf. Unterverzeichnisse für die Gruppen explizit angelegt werden müssen, für die die passenden Schreibrechte gesetzt sein müssen.''
 
 
!!!Eine Datei hochladen

Sowie die Uploadfunktion freigeschaltet ist, können Benutzer auf das ''Anhängen''-Formular zugreifen, indem sie "@@?action=upload@@" an das Ende eines normalen PmWiki-URL anfügen. Der Benutzer wird aufgefordert, ein Upload-Passwort einzugeben, entsprechend der übrigen Passwortabfragen (siehe [[Passwords]] und [[PasswordsAdmin]] zu Informationen zum Setzen von Passwörtern für Seiten, Gruppen und die komplette Site.)

Eine Alternative wäre, den Markup "[@Attach:filename.ext@]" in eine bestehende Seite einzufügen, wobei @@filename.ext@@ der Name der hochzuladenden Datei ist. Wenn die Seite angezeigt wird, wird ein '?-Link' am Ende des Markups angefügt, die den Autor zur Anhängen-Seite führt. (Siehe [[Uploads|+]] für weitere Syntaxvarianten.)

Vorgegeben ist die Organisation der hochgeladenen Dateien in einzelnen Unterverzeichnissen für jede Gruppe. Dies kann geändert werden durch anpassen der Variablen $UploadPrefixFmt, siehe [[Cookbook:UploadGroups]] für Details.

!! [[#upload_versions]] Versionierung hochgeladener Dateien

PmWiki verwaltet keine Versionen hochgeladener Dateien per Voreinstellung. Dennoch kann ein Administrator durch Setzen der Variablen
->$EnableUploadVersions=1;
in der Datei config.php einstellen, dass ältere Dateien im Upload-Verzeichnis zusammen mit der neuesten Datei gespeichert werden.

!!Hochladen beschränken

!!!Beschränken des Hochladens auf Gruppen oder Seiten

Hochladen kann beschränkt werden auf Gruppen oder Seiten durch Benutzen einer [[PmWiki/group customizations|individuellen Einstellung pro Gruppe]]. Man setzt einfach @@$EnableUpload=1;@@ für solche Gruppen oder Seiten, für die das Hochladen erlaubt sein soll; alternativ kann man auch @@$EnableUpload=1;@@ in der config.php-Datei setzen und damit zunächst site-weit erlauben und dann in den per-group- oder per-page-Dateien @@$EnableUpload=0;@@ eintragen, in denen es definitiv verboten sein soll.


!!! Beschränkung der Gesamtgröße der Anhänge für Gruppen oder die ganze Site

Anhänge können beschränkt werden auf eine Gesamtgrößengrenze für Gruppen. In der Gruppenkonfigurationsdatei setzt man diese Zeile hinzu:

->$UploadPrefixQuota = 1000000;    # limit group uploads to 1000KB (1MB)

Das begrenzt die Gesamtgröße der Anhänge für diese Gruppe auf 1000KB &mdash; jeder Anhang, der die Gesamtsumme über diese Grenze bringt, wird mit einer Fehlermeldung zurückgewiesen. Der Standard ist null (unbegrenzt).

Anhänge können auch auf eine Gesamtgrößengrenze für ''alle'' Anhänge beschränkt werden. Man fügt diese Zeile hinzu:

->$UploadDirQuota = 10000000;    # limit total uploads to 10000KB (10MB)

Das begrenzt die Gesamtgröße der Anhänge der ganzen Site auf 10000KB &mdash;  jeder Anhang, der die Gesamtsumme über diese Grenze bringt, wird mit einer Fehlermeldung zurückgewiesen. Der Standard ist null (unbegrenzt).


[[#restrictinguploadedfiles]]
!!!Beschränken der Anhänge auf bestimmte Dateitypen und -größen

Das Upload-Skript führt ein paar Verifikationen (Tests) an den Anhängen durch, bevor ein Anhang im Uploadverzeichnis gespeichert wird. Die grundsätzlichen Verifikationen werden hier beschrieben.

:'''Dateinamen''': Der Name einer hochzuladenden Datei darf nur Buchstaben, Ziffern, Unterstriche, Bindestriche, Leerzeichen und Punkte enthalten. Der Name muss mit einem Buchstaben oder einer Ziffer beginnen und enden.

:'''Dateierweiterungen''': Nur Dateien mit zugelassenen Dateierweiterungen wie "@@.gif@@", "@@.jpeg@@", "@@.doc@@", etc. dürfen hochgeladen werden. Dies ist eine lebenswichtige Sicherheit für den Server, sonst könnte ein Benutzer den Server dazu bringen, Dateien mit Endungen wie "@@.php@@", "@@.cgi@@", etc. auszuführen bzw. besonders zu behandeln.

:'''Dateigrößen''': Per Voreinstellung sind alle hochzuladenden Dateien auf 50K Bytes beschränkt, so wie es in der Variablen $UploadMaxSize bestimmt ist. Um diese Grenze auf 100K zu erhöhen braucht man nur einen neuen Wert in der ''config.php''-Datei zu setzen:

->[@$UploadMaxSize = 100000;@]

Die maximale Dateigröße kann auch für jeden Dateityp einzeln angegeben werden. So kann ein Administrator die Größe für "@@.gif@@"- und "@@.jpeg@@"-Dateien auf 20K, "@@.doc@@"-Dateien auf 200K, und alle anderen auf die durch $UploadMaxSize gegebene Größe beschränken. Das $UploadExtSize-Array wird benutzt, um zu bestimmen, welche Dateiendungen gültig sind und wie groß die Dateien sein dürfen. Zum Beispiel:

->[@$UploadExtSize['gif'] = 20000; # begrenze .gif-Dateien auf 20K@]

Setzen eines Eintrags auf Null verhindert das Hochladen einer Datei solchen Typs insgesamt:

->[@$UploadExtSize['zip'] = 0;    # verhindere .zip-Dateien@]
->[@$UploadExtSize[''] = 0;        # verhindere Dateien ohne Dateierweiterung@]

Sie können bestimmen, welche Dateitypen hochladbar sind, indem Sie alle Voreinstellungen abschalten und nur die gewünschten Typen angeben. Setzen der Variablen $UploadMaxSize auf null schaltet alle voreingestellten Dateitypen ab. Individuelle Dateitypen werden dann zugelassen durch Setzen ihrer maximalen Größe mit der Variablen $UploadExtSize.

->[@# alle Dateierweiterungen hochzuladen verbieten@]
->[@$UploadMaxSize = 0;@]

->[@# nur diese Dateierweiterungen hochzuladen erlauben@]
->[@$aSize = 100000; // Dateigröße auf 100k begrenzen@]
->[@$UploadExtSize['jpg'] = $aSize;@]
->[@$UploadExtSize['gif'] = $aSize;@]
->[@$UploadExtSize['png'] = $aSize;@]

!!!Beachten Sie: Dateien mit mehreren Dateierweiterungen
Einige Installationen mit Apache-Servern versuchen eine Datei, deren Name ".php", ".pl" oder ".cgi" enthält, auszuführen, selbst wenn diese Erweiterung nicht der letzte Teil des Namen ist. Zum Beispiel wird eine Datei "test.php.txt" womöglich ausgeführt. Um das Hochladen solcher Dateien zu verhindern, fügen Sie zur Datei ''config.php'' eine solche Zeile hinzu:

  $UploadBlacklist = array('.php', '.pl', '.cgi');

[[#newuploadfiletypes]]
!!Hinzufügen neuer Dateitypen zu den erlaubten Typen

Um eine neue Dateierweiterung zu der Liste der erlaubten Typen hinzuzufügen, fügt man eine neue Zeile wie die folgende in eine [[PmWiki/local customization(s)]]-Datei hinzu:

->[@$UploadExts['ext'] = 'content-type';@]

wobei ''ext'' die Dateierweiterung und ''content-type'' ein Dateityp ([[http://de.wikipedia.org/wiki/MIME_type|MIME type]]) ist, der mit Dateien mit dieser Erweiterung verknüpft werden soll. Um zum Beispiel die Erweiterung '[@dxf@]' hinzuzufügen mit dem Dateityp '[@image/x-dxf@]', setzt man in die Datei die Zeile

->[@$UploadExts['dxf'] = 'image/x-dxf';@]

Jeder Eintrag in $UploadExts muss ein Paar aus der Erweiterung und dem damit verbundenen Mime-Typ sein:

->[@
$UploadExts = array(
  'gif' => 'image/gif',
  'jpeg' => 'image/jpeg',
  'jpg' => 'image/jpeg',
  'png' => 'image/png',
  'xxx' => 'yyyy/zzz'
)
@]

Für die Dateitypen, die PmWiki schon bekannt sind, ist deren Wiederholung hier nicht nötig (das ''upload.php''-Skript fügt PmWikis Vorgaben zu denen hinzu, die der Administrator hier angibt).
Siehe auch Cookbook:UploadTypes wegen weitere Typen.


[[#otherfilesizelimits]]
!!Andere Dateigrößengrenzen

Es gibt weitere Faktoren, die die Dateigrößen beeinflussen. In Apache 2.0 gibt es eine    [[http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestbody |LimitRequestBody-Direktive]],
die die Maximalgröße von Allem, was irgendwie "gepostet" wird (einschließlich der Anhänge), kontrolliert. Die Vorgabe in Apache setzt dies auf 'unbegrenzt'. Dennoch begrenzen manche Distributionen (z. B. Red Hat 8./9.0) die Größe auf 512K, so dass diese Einstellung ggf. zu ändern (zu erhöhen) ist. (Normalerweise stehen solche Einstellungen in der ''httpd.conf''-Konfigurationsdatei oder in einer Datei im ''/etc/httpd/conf.d''-Verzeichnis.)

Es wurde ein Problem berichtet mit Red Hat 8.0/9.0 mit Apache 2.0.x, wo der Fehler "Requested content-length of 670955 is larger than the configured limit of 524288" unter Apache auftritt und ein "Page not found" im Browser erscheint. Die obigen Einstellungen ändern daran auch nichts. Aber in Red Hat 8.0/9.0 gibt es eine zusätzliche PHP-Konfigurationsdatei, /etc/httpd/conf.d/php.conf, und ein heraufsetzen der Zahl in "`LimitRequestBody 524288" löst das Problem.

PHP selbst hat zwei Grenzen bezüglich hochzuladender Dateien (gewöhnlich in /etc/php.ini). Die erste ist der @@upload_max_filesize@@-Parameter, der per Voreinstellung auf 2M gesetzt ist. Die zweite ist @@post_max_size@@, welche per Voreinstellung auf 6M gesetzt ist.

Mit den Variablen an ihren Stellen -- PmWikis maximaler Dateigröße, Apaches request-size-Grenzen und den PHP-Dateigrößengrenzen -- ist die maximale Dateigröße die geringste Größe dieser drei Variablen.

!!! [[#direct_download]] Durch ein Passwort geschützte hochgeladene Dateien

Das Setzen eines Lesepassworts für Seiten (und Gruppen) verhindert, dass eine angehängte Datei gesehen wird oder das man über diese Seite darauf zugreifen kann. Um aber direkten Zugriff auf den Speicherort der Datei (das uploads/-Verzeichnis) zu verhindern, kann man das folgende tun:
 
* In local/config.php setzt man $EnableDirectDownload=0;
* Wenn Sie per-gruppe-Upload-Verzeichnisse nutzen, (PmWikis Standard, siehe $UploadPrefixFmt), fügen Sie zur ''config.php'' $EnableUploadGroupAuth = 1; hinzu.
* Verweigern Sie den öffentlichen Zugriff auf das uploads/-Verzeichnis, indem Sie es aus dem html/- oder public_html/-Verzeichnisbaum heraus verschieben oder durch eine .htaccess-Datei.

Siehe [[Cookbook:SecureAttachments]] -  {Cookbook.SecureAttachments$:Summary}. 


!!Weitere Bemerkungen

* Wenn Hochladen nicht zu funktionieren scheint, versichern Sie sich, dass Ihre PHP-Installation Hochladen erlaubt. Die ''php.ini''-Datei (gewöhnlich ''/etc/php.ini'' oder ''/usr/local/lib/php.ini'') sollte folgende Zeile enthalten:

->[@file_uploads = On@]

* Eine weitere Fehlerquelle in der ''php.ini''-Datei ist ein nicht definiertes ''upload_tmp_dir. Setzen Sie diese Variable auf Ihr temp-Verzeichnis.

->[@upload_tmp_dir = /tmp@]

Beachten Sie, dass httpd neu gestartet werden muss, wenn Sie diese Werte ändern. Ein anderer Weg zu prüfen, ob Hochladen auf den Server erlaubt ist, ist $EnableDiag auf 1 zu setzen in ''config.php'' und ?action=phpinfo an einen URL anzufügen. Die "@@file_uploads@@"-Variable muss den Wert 1 haben (wenn es heißt "@@no value@@", bedeutet das 'off').

%trail% <<|[[DocumentationIndex|Dokumentationsindex]]|>>

>>faq<< [[#faq]]

Q: Wie verhindere ich das Hochladen eines gewissen Dateityps?
A: Hier ist ein Beispiel, was in Ihrer local/config.php-Datei ergänzt werden muss, um Hochladen von .zip-Dateien zu verhindern:

->[@$UploadExtSize['zip'] = 0;  # Disallow uploading .zip files.@]
->[@$UploadExtSize[''] = 0;    # Disallow files with no extension@]


Q: Wie verbinde ich Anhänge mit individuellen Seiten oder der gesamtem Site, anstatt sie durch [[Wiki group|+]] zu organisieren?
A: Verwenden Sie die $UploadPrefixFmt-Variable (siehe auch das Cookbook:UploadGroups Rezepte).

->[@$UploadPrefixFmt = '/$FullName';  # per-page@]
->[@$UploadPrefixFmt = '';  # site-wide@]


Q: Für $UploadDirQuota - können Sie ein paar Einheiten und Zahlen anbieten? Ist die Angabe in Bytes oder Bits? Was ist die Nummer vor 100K? 1Meg? 1 Gig? 1 Terabyte?
A: Einheiten sind in Bytes.

  $UploadDirQuota = 100*1024;        # limit uploads to 100KiB
  $UploadDirQuota = 1000*1024;        # limit uploads to 1000KiB
  $UploadDirQuota = 1024*1024;        # limit uploads to 1MiB
  $UploadDirQuota = 25*1024*1024;    # limit uploads to 25MiB
  $UploadDirQuota = 2*1024*1024*1024; # limit uploads to 2GiB


Q: Gibt es einen Weg, Dateinamen mit Unicode oder zusätzlichen Zeichen zu erlauben?
A: Für ältere Versionen von PmWiki, siehe [[Cookbook:Attachlist enhanced]] &rarr; "{Cookbook.AttachlistEnhanced$:Summary}", \\
  für Version 2.2 oder höher siehe [[Cookbook:Attachtable]] &rarr; "{Cookbook.Attachtable$:Summary}"


Q: Wie kann ich Hotlinking meiner hochgeladenen Bilder verhindern?
A: Siehe [[Cookbook:Prevent Hotlinking]] &rarr; {Cookbook.PreventHotlinking$:Summary}

[[#faqend]]
>><<
to:
http://10rciaonline.com/ , ) Lyrics Lyrics Lyrics not available for this song.