Sicherheit

für die Liste aller Seiten

Autoren (Fortgeschritten) und Administratoren

Einzelne Aspekte zur Sicherheit (security) von PmWiki sind auf den folgenden Seiten zu finden:

Dokumentationsseiten:

  • Seitenversionen → Ansehen/Wiederherstellen früherer Versionen einer Seite
  • Passwörter → Seiten und Gruppen mit Passwörtern schützen
  • Passwörter verwalten → Administration der (site-weiten) Passwörter
  • AuthUser → Autorisierungverfahren mit Benutzernamen und Passwort erlaubt mehr Kontrolle über Autorentätigkeiten.
  • Url-Freigabe → Urls werden geprüft und ggf. freigegeben, ein Mittel gegen Link-Spamming
  • Site-Analysierer → Analyse der Sicherheit der Site und Angabe der Software-Version
  • Blockadeliste → Mit der Blockadeliste blockiert man unliebsame IP-Adressen, Wendungen und reguläre Ausdrücke gegen Spam und Vandalismus.
  • E-Mail Nachricht bei geänderten Seiten (neu) → E-Mail-Benachrichtigungen bei Änderungen einrichten und konfigurieren
  • Sicherheits-Variablen → Für die Sicherheit entscheidende Variablen
  • Aktualisierung auf SiteAdmin→ Ab PmWiki 2.2 gibt es eine neue Gruppe SiteAdmin, da gibt es beim Aktualisieren einiges zu beachten.

Kochbuch-Seiten (nur auf Englisch verfügbar):

Wie melde ich mögliche Verwundbarkeiten der Sicherheit in PmWiki?

Pm schrieb darüber in einer Veröffentlichung an pmwiki-Benutzer vom September 2006. In aller Kürze unterscheiden er zwischen zwei Fällen:

  1. Die mögliche Verwundbarkeit ist noch nicht öffentlich bekannt: In diesem Fall kontaktieren Sie Pm in einer persönlichen Mail.
  2. Die mögliche Verwundbarkeit ist bereits öffentlich bekannt: In diesem Fall diskutieren Sie die Verwundbarkeit öffentlich (z. B. auf pmwiki-users).

Siehe seine oben erwähnte Nachricht wegen Details und Begründungen.

Was ist mit den Botnet-Sicherheits-Ratschlägen in https://isc.sans.org/diary.php?storyid=1672?

Sites, bei denen PHPs register_globals-Einstellungen auf "On" gesetzt sind und Versionen vom PmWiki vor 2.1.21 könnten verwundbar durch ein Botnet sein durch Ausnutzen eines Fehlers in PHP. Die Verwundbarkeit kann geschlossen werden, indem man register_globals auf "off" stellt, auf PmWiki 2.1.21 oder später upgradet oder die PHP-Versionen 4.4.3 oder 5.1.4 upgradet.
Zusatz: Es gibt einen Test in PmWiki:SiteAnalyzer, der benutzt werden kann, um zu bestimmen, ob Ihre Site verwundbar ist.

Wiki-Vandalismus und Spam

Annahmen
Sie nutzen eine Blockadeliste und Url-Freigabe.
Sie wollen nicht darauf zurückgreifen, das gesamte Wiki durch Passwörter zu schützen, das ist letztlich nicht der Punkt.
Idealerweise wird dieser Schutz in config.php aktiviert.

Wie beende ich das Löschen von Seiten, d. h. wie schütze ich Seiten vorm Löschen mit einem Passwort?

Benutzen Sie Cookbook:DeleteAction und schützen Sie die Löschen-Aktion mit einem Passwort,

indem Sie $DefaultPasswords['delete'] = '*'; in die config.php-Datei einfügen
oder schützen Sie die Aktion
durch $HandleAuth['delete'] = 'edit'; um ein Bearbeiten-Passwort für das Löschen erforderlich zu machen,
oder durch $HandleAuth['delete'] = 'admin'; um ein Administrator-Passwort für das Löschen erforderlich zu machen.

Wie verhindere ich, dass Seiteninhalte durch eine leere (alles Leerzeichen) Seite ersetzt wird?

Fügen Sie block: /^\s*$/ zu Ihrer Blockadeliste hinzu.

Wie kann ich verhindern, dass Seiten durch alberne Kommentare wie exellente Site, großartige Informationen, ersetzt werden, wo der Inhalt nicht blockiert werden kann?

Versuchen Sie eine neuere Automatische Blockadeliste, die Informationen über IP-Adressen von bekannten Wiki-Verunstaltern zieht.

(ODER) Versuchen Sie Cookbook:Captchas or Cookbook:Captcha anzuwenden (Beachten Sie, die sind verschieden).

(ODER) Setzen Sie ein Bearbeiten-Passwort, machen es aber in der Site.AuthForm-Vorlage öffentlich.

Wie kann ich alle gemeinsamen Seiten in allen Gruppen wie RecentChanges, Search, GroupHeader, GroupFooter usw. mit einem Passwort schützen?

Fügen Sie die folgenden Zeilen in Ihre local/config.php-Datei ein. Ein Bearbeiten dieser Seiten wird dann ein Administrator-Passwort erfordern.

## Require admin password to edit RecentChanges (etc.) pages.
if ($action=='edit'
    && preg_match('/\\.(Search|Group(Header|Footer)|(All)?RecentChanges)$/', $pagename))
  { $DefaultPasswords['edit'] = pmcrypt('secret phrase'); }

Anmerkung: Alle GroupAttributes-Seiten sind durch das 'attr'-Passwort geschützt.

Alternative: Sie können eine 'admin'-Authentifizierung für diese Seiten erforderlich machen:

 
## Require admin password to edit RecentChanges (etc.) pages.
if ($action=='edit' 
    && preg_match('(Search|Group(Header|Footer)|(All)?RecentChanges)', $pagename))
  { $HandleAuth['edit'] = 'admin'; }
Ich fürchte, wegen meiner sauberen URLs muss ich den regulären Ausdruck etwas kürzen. Außerdem setze ich das Bearbeiten-Passwort für diese Seiten auf das Administrator-Passwort in $DefaultPasswords['admin'] = pmcrypt('secret phrase'); in local/config.php.
Soweit ich sehen kann, funktioniert das für mich wie erwartet. --Rico, 2007-02-02

Wie schütze ich das Anlegen neuer Gruppen mit einem Passwort?

Siehe Cookbook:Limit Wiki Groups

Wie schütze ich das Anlegen neuer Seiten mit einem Passwort?

Siehe Cookbook:Limit new pages in Wiki Groups

Wie kann ich eine Art Whitelist machen, wo Benutzer von bekannten oder vertrauenswürdigen IP-Adressen Seiten bearbeiten können, alle Anderen aber ein Passwort brauchen?

Fügen Sie diese Zeilen in local/config.php ein:

## Allow passwordless editing from own turf, pass for others.
if ($action=='edit'
 && !preg_match("^90.68.", $_SERVER['REMOTE_ADDR']) )    
 { $DefaultPasswords['edit'] = pmcrypt('foobar'); }

Ersetzen Sie "90.68." durch den bevorzugten Netzwerk-Präfix und "foobar" durch das Standardpasswort für Andere.

Für eine einzelne IP benutzen Sie:

if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { # Ihre IP-Adresse hierhin
 $_POST['authpw'] = 'xxx';                  # das Admin-Passwort
}

Bitte beachten Sie die Sicherheitsaspekte: das bedeutet nämlich, dass Sie das Admin-Passwort als Klartext in Ihrer config.php-Datei stehen haben und jemand mit Zugriff auf das Dateisystem diese Datei lesen kann, z. B. ein technischer Mitarbeiter des hostenden Providers. Ihre IP-Adresse kann sich gelegentlich ändern (es sei denn, Sie haben einen Vertrag über eine fixe IP mit ihrem Internet-Service-Provider [ISP]). Wenn das passiert, wird jemand mit Ihrer alten IP-Adresse automatisch als Admin in Ihrem Wiki angemeldet. Es ist extrem unwahrscheinlich, dass es Probleme gibt, aber Sie sollen wissen, dass das möglich ist. Wenn Sie hinter einem Router sitzen, haben alle anderen Geräte hinter diesem Router im Internet die gleiche IP-Adresse wie Sie (aus der Sicht des Wikis) — Ihr WiFi-Telefon, dass Notebook Ihrer Frau, ein Nachbar, der Ihre WiFi-Verbindung mitbenutzt etc. Alle diese Leute werden Admin Ihres Wikis. Nochmal: Sie sollten prüfen, ob sich daraus ein Sicherheitsrisiko ergibt. In manchen Fällen routet Ihr ISP Ihren Verkehr gemeinsam mit dem anderer Leute über einen gemeinsamen Proxy(-Server) — in solch einem Fall könnten tausende von Leuten die selbe IP-Adresse haben.

Siehe auch Cookbook:AuthDNS & Cookbook:PersistentLogin

Wie setze oder lösche ich ein Passwort für eine Gruppe oder Seite in config.php?

siehe Passwörter und Passwörter verwalten.

Wie schütze ich Seitenaktionen durch ein Passwort?

Siehe Passwörter wegen der Einstellungen in der config.php-Datei.

$HandleAuth['pageactionname'] = 'pageactionname'; # zusammen mit :
$DefaultPasswords['pageactionname'] = pmcrypt('secret phrase');

oder

$HandleAuth['pageactionname'] = 'anotherpageactionname';

Wie erlaube ich Verfassern nur dann zu veröffentlichen, wenn Sie auch ein Profil? haben?

Fügen Sie dies in Ihre local/config.php unterhalb der include_once("$FarmD/scripts/author.php");-Zeile:

if(!PageExists('Profiles.'.$Author)&&$action=='edit')
$HandleAuth['edit'] = 'admin';

Dies ist eine mögliche Lösung, aber seien Sie gewarnt, Autoren können dann auch keine Wikiseite in der Profile-Gruppe? neu anlegen.
Ergänzen Sie if($group != 'Profiles') oben ;-)

Wie macht man eine Regel, die nur den Autoren selbst erlaubt, ihre eigene Wikiseite in der Profile-Gruppe? zu bearbeiten?

Fügen Sie dies zu Ihrer local/config.php-Datei hinzu:

$name = PageVar($pagename, '$Name');
if($group=='Profiles') $DefaultPasswords['edit'] = 'id:'.$name;

Wie moderiere ich alle Veröffentlichungen?

Aktivieren Sie Entwürfe

  • Setzen Sie $EnableDrafts, damit wird der "Guardar"-Button in zwei einzelne Buttons aufgeteilt: "Publicar" und "Guardar borrador".
  • Setzen Sie dann $EnablePublishAttr. Das fügt eine "Publicar"-Autorisierungsebene ein, um das Bearbeiten der Entwürfe vom Publicar des neuen Textes unterscheiden zu können.

Wie mache ich ein Read-Only-Wiki?

Setzen Sie ein 'edit'-Passwort in config.php.

Wie schränke ich den Zugriff auf hochgeladene Anhänge ein?

Siehe

Wie verberge ich die IP-Adresse in den "diff"-Seiten?

Wenn der Benutzer einen Benutzernamen einträgt, erscheint dieser an stelle der IP-Adresse. Um das Eintragen eines Benutzernamen zu erzwingen, setzen Sie das Folgende in die config.php-Datei ein:

  $EnablePostAuthorRequired = 1;

Die IP-Adress kann auch in dem Tooltip-Titel erscheinen, wenn der Mauscursor über dem Autorennamen ist. Wenn Sie das deaktivieren möchten, dass setzen Sie das Folgende in Ihre config.php-Datei:

$DiffStartFmt = 
  "<div class='diffbox'><div class='difftime'><a name='diff\$DiffGMT' href='#diff\$DiffGMT'>\$DiffTime</a>
   \$[by] <span class='diffauthor'>\$DiffAuthor</span> - \$DiffChangeSum</div>";

Wie halte ich einige Apacheinstallationen davon ab, (hochgeladene) Dateien die ".php", ".pl" oder ".cgi" irgendwo im Dateinamen haben, auszuführen.

Benutzen Sie $UploadBlacklist

Wie hindere ich irgendwelche Leute daran, den Quelltext meiner Wikiseiten mit ?action=source zu inspizieren. Ich habe (:if auth edit:)-Text darin, den ich nicht der ganzen Welt präsentieren möchte.

$HandleAuth['source'] = 'edit'; oder $HandleAuth['source'] = 'admin';

Wie sichere ich meine Cookies?

Siehe $EnableCookieSecure und $EnableCookieHTTPOnly

Wie setze ich ein globales Passwort, um Spambots auszuschließen und Menschen über das Passwort zu informieren?

Siehe Cookbook:OpenPass-Talk

für die Liste aller Seiten


Übersetzung von PmWiki.Security,   Originalseite auf PmWikiDe.Security   —   Retroenlaces

Zuletzt geändert:   PmWikiDe.Securityam 16.07.2022
 PmWiki.Securityam 15.07.2022