Back to Question Center
0

Penghapusan besar-besaran semakan spam di Semalt Pembersihan spam menggunakan akses pangkalan data langsung

1 answers:

Semalat saya 'mediawiki' misalnya adalah kira-kira sebagai selamat sebagai piggybank kanak-kanak. Saya telah mengetatkannya sekarang, tetapi saya tinggal dengan kira-kira seratus atau lebih halaman baru dan semakan yang dihasilkan oleh beratus-ratus pengguna yang dijana secara rawak - XN-B3T-SBB DIVERSEN.

2 soalan soalan; Adakah terdapat cara untuk memadam semua halaman yatim piatu? Bolehkah saya mengatakan untuk melancarkan semua semakan TIDAK dibuat oleh pengguna tertentu (saya)?

February 7, 2018

Jika anda tidak mahu menggunakan kaedah eksport dan penginstalan semula yang dicadangkan oleh danlefree , anda mungkin juga mendapati sambungan Nuke berguna. Setelah dipasang, melawat halaman khas Khas: Nuke sebagai pentadbir memberi anda bentuk seperti ini:

Screenshot of MediaWiki Nuke extension interface

Terdapat juga beberapa skrip penyelenggaraan MediaWiki terbina dalam yang boleh berguna, termasuk:

  • pembersihan Spam. php , yang boleh digunakan untuk berbalik dan / atau memadam semua semakan yang mengandungi pautan ke nama hos tertentu,

  • deleteBatch. php , yang boleh digunakan untuk memadam semua halaman yang disenaraikan dalam fail, dan

  • rollbackEdits. php (yang pada masa ini tidak mempunyai dokumentasi tepat pada wiki), yang boleh digunakan untuk melancarkan semua suntingan pengguna tertentu.


Pembersihan spam menggunakan akses pangkalan data langsung

Anda juga boleh melakukan apa yang anda mahu dengan memanipulasi pangkalan data secara langsung. Terdapat butiran yang boleh berubah sedikit bergantung pada keadaan anda, tetapi langkah asas akan menjadi seperti ini:

  1. Tetapkan wiki anda kepada mod baca sahaja . Anda lakukan tidak mahu seseorang mencuba mengedit wiki semasa anda sedang mengaitkan pangkalan data.

  2. Buat sandaran wiki anda. (Ini sangat disyorkan sebelum sebarang penghapusan besar-besaran yang tidak dapat dipulihkan lagi. )

  3. Padam semua akaun pengguna yang dibuat oleh spammer. Jika, seperti dalam soalan di atas, anda adalah satu-satunya pengguna yang sah, anda hanya boleh melakukan:

      Buang dari pengguna WHERE user_id! = YOUR_USER_ID; 

    Sebagai alternatif, jika tiada akaun sah yang baru dibuat selepas spammer menemui wiki, anda boleh mencari nombor ID pengguna yang sah dan lakukan:

      Buang dari pengguna WHERE user_id> LAST_VALID_USER_ID; 

    Atau anda boleh menggunakan alat admin seperti phpMyAdmin untuk memilih akaun yang sah secara manual dan memadamkan yang lain.

  4. Bersihkan data tambahan yang berkaitan dengan akaun yang dipadamkan. Ini tidak diperlukan, tetapi rekod yatim piatu ini tidak digunakan dan hanya akan mengatasi pangkalan data anda jika anda tidak memadamkannya:

      DELETE DARI user_groups WHERE ug_user TIDAK IN (SELECT user_id FROM user);
    DELETE FROM user_properties WHERE up_user TIDAK IN (SELECT user_id FROM user);
    DELETE FROM user_newtalk WHERE user_id TIDAK IN (SELECT user_id FROM user); 
  5. Padam sebarang semakan yang tidak dibuat oleh pengguna yang sah:

    Ini adalah langkah besar; semuanya sebelum persiapan, segala-galanya selepas itu dibersihkan. Dengan semua akaun spam yang dipadam, anda hanya boleh melakukan:

      Buang dari semakan WHERE rev_user> 0 DAN rev_user TIDAK IN (SELECT user_id FROM user); 

    Sekiranya wiki anda telah disunting penyunting tanpa nama (yang saya cadangkan untuk wiki / wikis peribadi), pertanyaan di atas sepatutnya cukup untuk menyingkirkan semua semakan spam. Jika anda menghidupkan pengeditan anon, walau bagaimanapun, anda perlu nuke spam tanpa nama secara berasingan.

    Jika anda yakin bahawa semua pengeditan anon di wiki anda adalah spam, suntingan hanya dibuat oleh UID 0 yang mungkin perlu kita simpan adalah yang dibuat oleh MediaWiki itu sendiri (seperti halaman yang diimport dari luar wiki). Dalam hal ini, sesuatu seperti pertanyaan berikut harus berfungsi:

      BERSURUH DARI semakan WHERE rev_user = 0 DAN rev_user_text DI ANTARA '1' DAN '999'; 

    Ini akan memadam sebarang semakan oleh UID 0 di mana nama pengguna kelihatan (samar-samar) seperti alamat IPv4; iaitu, ia bermula dengan angka antara 1 dan 9.

    Jika wiki anda mempunyai pengeditan anon sah yang sah, anda mungkin perlu sedikit lebih kreatif. Sekiranya bilangan alamat IP yang di

Cara paling mudah untuk menangani keadaan ini (jika anda tidak keberatan nuke'n'pave) akan mengeksport semua halaman wiki yang dibuat atau diedit oleh nama pengguna anda, pasang kembali wiki itu, dan import fail eksport yang anda akan dijana.

"Pasang semula" dalam konteks ini bermaksud:

  1. Mengeksport artikel yang dibuat oleh anda (mungkin dilog masuk sebagai pengguna WikiSysop atau serupa)
  2. Drop database MW
  3. Buat pangkalan data MW kosong
  4. Salin LocalSettings anda. php fail ke lokasi selamat
  5. Muat semula direktori / config /
  6. Jalankan proses pemasangan pada pangkalan data MW baru (perhatikan bahawa anda akan mahu membuat semula pengguna admin lama anda)
  7. Padamkan direktori / config / dan alihkan seting Templat yang lama anda. php fail kembali ke akar MW
  8. Import fail yang dibuat pada Langkah # 1
Anda mungkin mahu menurunkan sandaran pangkalan data (termasuk semakan spam) sekiranya anda menghadapi sebarang masalah dengan proses ini atau ingin mencuba dengan cara alternatif untuk membersihkan spam.

Secara teori, anda boleh menulis sambungan MediaWiki untuk melakukan apa sahaja yang anda suka kepada contoh MediaWiki, termasuk untuk melakukan perkara yang anda sebutkan.

Pendek itu, dan pendek dari "nuke'n'pave" yang dicadangkan oleh danlefree, anda mungkin mendapati sambungan Pengguna Gabung dan Padam berguna: anda boleh menggunakannya untuk menyatukan beberapa akaun spambot ke dalam satu akaun yang pengeditannya boleh ditangani lebih mudah.

Cara paling mudah untuk mengendalikan situasi ini ialah memasang pelanjutan DeleteBatch . Gunakan Khas: AllPages di wiki anda untuk mendapatkan fail skrip nama halaman yang anda mahu dipadamkan, dan muatkan ke dalam Khas: DeleteBatch.

Jika hanya seratus laman web spam yang anda tidak terlalu teruk. Saya perlu membersihkan wiki yang mempunyai beribu-ribu laman spam. Saya mendapat beberapa petua yang baik oleh Pengguna: Halz pada halaman ini: https: // www. mediawiki. org / wiki / Pengguna: Halz / Mass_despamming termasuk pecahan batasan pelbagai alat.

Di bahagian bawah dia menyediakan pertanyaan SQL berguna yang berjalan sedikit perlahan tetapi membantu anda mencari halaman yang paling mungkin spam, terutamanya jika anda dapat mengenal pasti tempoh masa ketika wiki itu diambil alih oleh spammer. Halz juga mempunyai versi penggambaran Pelanjutan: Nuke yang membentangkan jenis parameter pertanyaan yang dapat digunakan untuk memudahkan pemadaman massa. Dia memberi saya satu salinan untuk digunakan, tetapi saya tidak fikir dia menerbitkannya.

Saya sangat mengesyorkan supaya tidak bercelaru dengan SQL MediaWiki! MediaWiki adalah binatang yang rumit, sangat dioptimumkan untuk Wikipedia. Terdapat beberapa perkara yang pelik berlaku di SQL dan jika anda hanya DELETE baris perkara mungkin longgar konsistensi.

Jika anda mempunyai beberapa kemahiran pengaturcaraan, pergi melalui API. Pywikibot adalah pilihan yang baik.

Jika tidak, periksa alat dalam direktori penyelenggaraan / . Anda boleh cuba alat saya sendiri, mewsh untuk membantu dengan itu (dan saya baru saja menambah "alat anti-spam" sebagai todo di sana).

Saya mengambil alih pemasangan dan mendapat lebih daripada 47,000 entri spam dalam pengguna jadual dan hampir 900,000 spam externallinks . Saya menggunakan Sequel Pro dan melawat setiap jadual dan entri yang dihapuskan yang tidak dibuat oleh pengguna yang sahih. Saya mendapati spam dalam externallinks , halaman , searchindex , pengguna , . Ia adalah masa yang cekap; sebahagian besar masa saya sedang menunggu untuk memadamkan pertanyaan untuk dijalankan. Saya bernasib baik kerana kebanyakan pengedaran otentik berlaku pada awal perkara.

Penghapusan besar-besaran semakan spam di Semalt Pembersihan spam menggunakan akses pangkalan data langsung
Reply