Захист від масової розсилки персональних повідомлень

Дорогі друзі,

Останнім часом стали надходити повідомлення про те, що сайти піддаються масової розсилки персональних повідомлень за допомогою спам програм. У новій версії скрипта будуть передбачені численні алгоритми захисту, що дозволяють повністю запобігти дані дії. У поточній версії скрипта існують два механізми захисту: перший, це включення в налаштуваннях груп каптчі для коментарів і персональних повідомлень, даний механізм гарантує повний захист від наявних на даний момент спам програм, другий, це більш радикальний спосіб – відключення в налаштуваннях груп дозвіл на використання персональних повідомлень. Дані методи безперечно володіють своїми недоліками, так наприклад багато хто не хочуть включати каптчі для коментарів, хоча ми рекомендуємо включати її для звичайних відвідувачів, т. к. це дуже хороший механізм від спаму в коментарях.

Для тих кому не підходять дані методи, ми хочемо надати невеликий тимчасовий додатковий механізм захисту від спаму, до тих пір поки не вийшла нова версія скрипта.

Отже відкрийте файл engine/modules/pm.php і знайдіть:
$stop = “”;
додайте нижче
$id_key = $_POST[$_SESSION[‘id_key’]];
if( $id_key == “” or $id_key != $dle_login_hash ) $stop .= “

  • ANTISPAM: User ID not valid
  • “;
    if (clean_url($_SERVER[‘HTTP_REFERER’]) != clean_url($_SERVER[‘HTTP_HOST’])) $stop .= “

  • ANTISPAM: User ID not valid
  • “;
    далі у файлі знайдіть рядки:
    if( $config[‘allow_comments_wysiwyg’] == “yes” ) $tpl->copy_template = “\n” . $tpl->copy_template . “”;
    else $tpl->copy_template = “\n” . $tpl->copy_template . “”;

    замініть їх на:
    $salt = “abchefghjkmnpqrstuvwxyz”;
    $random_key = “”;
    for($i = 0; $i < 8; $i ++) {
    $random_key .= $salt{rand( 0, 23 )};
    }
    @session_register( ‘id_key’ );
    $_SESSION[‘id_key’] = $random_key;
    $random_key = “”;
    if( $config[‘allow_comments_wysiwyg’] == “yes” ) $tpl->copy_template = “\n” . $tpl->copy_template . “{$random_key}”;
    else $tpl->copy_template = “\n” . $tpl->copy_template . “{$random_key}”;

    Власне все. Дане рішення тимчасове і поширюється на поточні версії спам програм, у новій версії будуть розроблені механізми, що забезпечують захист від будь-яких типів програм. Ми в свою чергу, все одно рекомендуємо застосовувати на даний момент для захисту, не вищевказаний патч, а включення коду безпеки CAPTCHA в налаштуваннях груп.
    58