Spam octubre 2020
La revisió el 17:36, 18 oct 2020 per Joan (discussió | contribucions) (→script editar.php i noeditar.php)
Contingut
Atac spam
(TBD)
Solució
(TBD)
- https://webmasters.stackexchange.com/questions/9194/mass-deletion-of-spam-revisions-in-mediawiki
- https://www.mediawiki.org/wiki/Manual:Combating_spam
- https://www.mediawiki.org/wiki/Manual:Combating_vandalism
- https://www.mediawiki.org/wiki/Extension:ConfirmEdit
Prevenció per tal de què no passi
Deshabilitar edicions anònimes i creació d'usuaris
Això sí que és important:
wgReadOnly = 'wiki en mode Només Lectura'; # https://www.mediawiki.org/wiki/Manual:Preventing_access/es#Restrict_anonymous_ # Prevent new user registrations by anyone $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['sysop']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['sysop']['edit'] = true;
Això és important per que si no qualsevol persona pot fer una edició (només queda constància la IP), i en el cas dels bots ni això.
script editar.php i noeditar.php
En el LocalSettings.php he posat les següents directives al final de tot:
#wgReadOnly = 'wiki en mode Només Lectura'; # https://www.mediawiki.org/wiki/Manual:Preventing_access/es#Restrict_anonymous_ # Prevent new user registrations by anyone $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['sysop']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['sysop']['edit'] = true;
La línia amb la directiva wgReadOnly es tracta de comentar-la/descomentar-la amb els següents scripts php:
editar.php: També fa una consulta a la base de dades per comprovar que només hi ha un usuari i que el múmero de pàgines està per sota de les 2000.
<?php $servername = "localhost"; $username = "root"; $password = "******"; $dbname = "wikidb117"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT count(*) as num FROM user"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "num_usuaris: " . $row["num"]."<br />"; } } else { echo "0 results"; } $sql = "SELECT count(*) as num FROM page"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "num_pagines: " . $row["num"]."<br />"; } } else { echo "0 results"; } $conn->close(); $file = file('LocalSettings.php'); $data = "#\$wgReadOnly = 'wiki en mode Només Lectura';"; $some_index = 138; foreach($file as $index => $line){ if($index == $some_index){ $file[$index] = $data . "\n"; } } $content = implode($file); file_put_contents('LocalSettings.php', $content); ?>
noeditar.php:
<?php $file = file('LocalSettings.php'); $data = "\$wgReadOnly = 'wiki en mode Només Lectura';"; $some_index = 138; foreach($file as $index => $line){ if($index == $some_index){ $file[$index] = $data . "\n"; } } $content = implode($file); file_put_contents('LocalSettings.php', $content); ?>
creat per Joan Quintana Compte, octubre 2020