Wir empfehlen:


Sicherheit

Aus DadAWeb
Wechseln zu: Navigation, Suche

Differenzierte Schreibrechte für nicht registrierte User

  • Als User registrieren: NEIN
  • Artikel-Seiten bearbeiten: NEIN
  • Diskussions-Seiten bearbeiten: JA

Die neue saubere Lösung, die für Mediawiki 1.16.5 funktioniert

In LocalSettings.php folgenden Eintrag vornehmen:

 ## Userrechte // NEUE VERSION für Mediawiki 1.16.5
 ## Anonyme User [*] können nur die Diskussion-Seiten beschreiben 
 
 $wgNamespaceProtection[NS_MAIN] =
 $wgNamespaceProtection[NS_USER] =
 $wgNamespaceProtection[NS_PROJECT] =
 $wgNamespaceProtection[NS_FILE] =
 $wgNamespaceProtection[NS_IMAGE] =
 $wgNamespaceProtection[NS_TEMPLATE] =
 $wgNamespaceProtection[NS_HELP] =
 $wgNamespaceProtection[NS_CATEGORY] = array('editarticles');
 
 $wgGroupPermissions['*']['createaccount']   = false;
 $wgGroupPermissions['user']['editarticles'] = true;
 
 ## Ende Userrechte 

Diese Lösung hat den großen Vorteil, dass nur die Konfigdatei LocalSettings.php angepasst werden muss und kein Patch der Datei Includes/User.php mehr erforderlich ist. Siehe auch detaillierte Infos zu dieser Lösung. --Jochen_S 17:23, 9. Jun. 2011 (UTC)

Die alte unsaubere Lösung, die ab Mediawiki 1.16.5 nicht mehr funktioniert

In LocalSettings.php folgenden Eintrag vornehmen:

## Userrechte
$wgGroupPermissions['*'    ]['createaccount']   = false;
$wgGroupPermissions['*'    ]['edit']            = false;
$wgGroupPermissions['*'    ]['createpage']      = false;
$wgGroupPermissions['*'    ]['edittalk'] = true; 

Die letzte Befehlszeile ermöglich die Nutzung der Diskussionsseiten durch alle User

In Includes/User.php diesen Eintrag vornehmen:

/**
* Check if user is allowed to access a feature / make an action
* @param string $action Action to be checked
* @return boolean True: action is allowed, False: action should not be allowed
*/
 function isAllowed($action=) {
	 if ( $action ===  )
	 // In the spirit of DWIM
	 return true;

 $this->loadFromDatabase();

 /* Special Cases */
 global $wgTitle;                
 //Allow groups which have 'edittalk' right to edit talk pages --by GD
 if ($wgTitle->isTalkPage() && strcmp('edit', $action) == 0) {
	 return in_array('edittalk' , $this->getRights() );
}
/*end special cases*/

Diese Lösung im MediaWiki-Manual dokumentiert. Von Zeit zu Zeit prüfen, ob dort zu dieser Lösung von anderen Usern Bugs bzw. Optimierungen dokumentiert werden!

Technische Sicherheitsvorkehrung gegen "Vandalismus" eingeführt

Ich habe heute endlich rausbekommen, wie man eine Schreibsperre für nicht-registrierte User einrichtet und diesen Schutz auch gleich für unsere Website aktiviert. D.h. ab jetzt können hier nur noch registrierte User schreiben und neue Seiten anlegen. Wenn das als Schutz vor "Vandalen" und "Spammern" nicht reichen sollte, kann man auch noch die Registrierung als User sperren, so dass neue User (AutorInnen) sich erst mal per eMail bei einem der Sysops melden müssen, um dann von uns manuell als User eingetragen zu werden. Das hängt die "Latte" für "Böswillige" ziemlich hoch und dürfte als technische Sicherheitsvorkehrung erst einmal ausreichen. (Jochen/Sysop, 9. 7. 2006)

Schreibsperre für nicht-registrierte User eingerichtet --WikiSysop 12:07, 9. Jul 2006 (CEST)

Das ging doch einfacher als gedacht und zwar über den folgenden Eintrag in LocalSettings.php (also NICHT in der Datei mit den Defaulteinstellungen: /includes/DefaultSettings.php)

## Userrechte
$wgGroupPermissions['*'    ]['createaccount']   = false;
$wgGroupPermissions['*'    ]['edit']            = false;
$wgGroupPermissions['*'    ]['createpage']      = false;


Weblinks

Vermittlung der Notwendigkeit der technischen Sicherheitsvorkehrungen

Siehe Argumentation auf:

Ähnlich (aber noch etwas strenger) wird dies auf den ebenfalls unter Wikimedia laufenden Seiten der FotoCommunity.de gehandhabt, die auch ein sehr differenziertes System von Nutzungsberechtigungen auf ihren Seiten verwenden.

Read-Only-Modus (generelle Schreibsperre)

Wird für die alte Archiv-Version und beim Umzug zur Einrichtung einer Schreibsperre benutzt.

Datei: LocalSettings.php, unten am Dateiende vor $wgArticlePath = '/wiki/$1';

$wgReadOnly = 'Dies ist die alte Archiv-Version des DadAWeb';