Diferència entre revisions de la pàgina «Spam octubre 2020»

De wikijoan
Salta a la navegació Salta a la cerca
 
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren)
Línia 3: Línia 3:
 
=Solució=
 
=Solució=
 
(TBD)
 
(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=
 
=Prevenció per tal de què no passi=
 +
==Deshabilitar edicions anònimes i creació d'usuaris==
 +
Això sí que és important:
 +
<pre>
 +
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;
 +
</pre>
 +
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==
 
==script editar.php i noeditar.php==
 
En el ''LocalSettings.php'' he posat les següents directives al final de tot:
 
En el ''LocalSettings.php'' he posat les següents directives al final de tot:
Línia 13: Línia 32:
 
$wgGroupPermissions['sysop']['createaccount'] = false;
 
$wgGroupPermissions['sysop']['createaccount'] = false;
  
#$wgGroupPermissions['*']['edit'] = false;
+
$wgGroupPermissions['*']['edit'] = false;
 +
$wgGroupPermissions['sysop']['edit'] = true;
 
</pre>
 
</pre>
  
Línia 24: Línia 44:
 
$servername = "localhost";
 
$servername = "localhost";
 
$username = "root";
 
$username = "root";
$password = "She4aiVa";
+
$password = "******";
 
$dbname = "wikidb117";
 
$dbname = "wikidb117";
  

Revisió de 17:36, 18 oct 2020

Atac spam

(TBD)

Solució

(TBD)

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