SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Проблем с автоматична регистрация

usmivkata

New member
Имаме wp сайт в който автоматично се регистрират потребители и публикуват статии. Пробвах доста CAPTCHA плъгини, за съжаление без успех. Явно не попадам на работещ плъгин. Моля ако някой знае добър плъгин за целта да помогне.
 
За: Проблем с автоматична регистрация

За: Проблем с автоматична регистрация

Ако си навит да редактираш ръчно wp-login.php файлът и да добавиш няколко реда, мога да ти кажа една защита, която аз съм си я измислил и никой бот не я знае. Но ако обновиш WP може да трябва пак да я добавиш. Но ако човек спамър дойде и се регистрира ръчно ще го пусне естествено. Защитата е напълно невидима и нищо не трябва да прави потребителя.
 
Re: За: Проблем с автоматична регистрация

Re: За: Проблем с автоматична регистрация

Няма проблем да опитаме с редакция на wp-login.php, ще съм ти благодарен, защото пробвах доста неща и нищо не помогна, а имам голям голям проблем.

Благодаря много sun
 
За: Проблем с автоматична регистрация

За: Проблем с автоматична регистрация

Добре, изтегли wp-login.php файлът, копирай си негово копие в оригинален вариант някъде за всеки случай, направи следните промени и го качи:
1. Намери следния код, може да е малко по-различен ако версията на wp е различна от моята:

PHP:
		$errors = register_new_user($user_login, $user_email);
		if ( !is_wp_error($errors) ) {
			$redirect_to = !empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
			wp_safe_redirect( $redirect_to );
			exit();
		}
Този код създава нов потребител и после препраща към страница със съобщение за успех.

2. Заобиколи този код по следния начин с друг код:

PHP:
        /////////////////////////////////////////////
        $taina = $_POST['taina'];
        if($taina == "minava")
        {
        /////////////////////////////////////////////////

		$errors = register_new_user($user_login, $user_email);
		if ( !is_wp_error($errors) ) {
			$redirect_to = !empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
			wp_safe_redirect( $redirect_to );
			exit();
		}

        /////////////////////////////////////////////
        }
        /////////////////////////////////////////////

Вече ще се изпълнява само ако една променлива е равна на точно дадена стойност.

3. Намери този код:

HTML:
<form name="registerform" id="registerform" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
	<p>
		<label><?php _e('Username') ?><br />
		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>

4. След него сложи този код:

HTML:
        <!--------------------------------------- -->
        <input type="hidden" name="taina" id="taina" value="bot" />
        <!--------------------------------------- -->

Това добавя невидимо поле във формуляра за регистрация, което е със стойност bot.

5. Намери този код:

HTML:
	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Register'); ?>" tabindex="100" /></p>

Това е бутонът за регистрация.

6. Промени го по следния начин:
HTML:
        <!--------------------------------------- -->
	<p class="submit"><input onmouseover="document.getElementById('taina').value='minava';" type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Register'); ?>" tabindex="100" /></p>
        <!--------------------------------------- -->

Разликата е, че след <input е добавен този код:
HTML:
 onmouseover="document.getElementById('taina').value='minava';"

Това, което прави е, че когато мишката мине върху бутона, скритото поле си променя стойността от bot на minava. Това е стойността, при която в стъпка 2 се позволява регистрацията.

Ненужните чертички и тирета са за да се вижда къде си правил промяна, ако в бъдеще отвориш файла. Ако се проектира бот специално за сайта ти, лесно ще бъде пробита защитата, но това никой не го прави защото не си струва. Всички стандартно шарещи из мрежата ботове няма да могат да минат.

Пиши ако нещо не е ясно.

Поздрави.
 
Re: За: Проблем с автоматична регистрация

Re: За: Проблем с автоматична регистрация

Мерси за подробната информация. Направих промените в wp-login.php, но получавам Parse error: syntax error, unexpected T_CASE на ред 586, който е case 'login' : и в двата случая, когато се опитвам да се логна и когато пробвам нова регистрация се появява същата грешка. Може ли нещо да се направи, за да тръгне.
 
За: Проблем с автоматична регистрация

За: Проблем с автоматична регистрация

Станала е някаква грешка с някоя скоба или точка и запетая или твоя файл не е точно същия като моя. Трябва да видя кода за да я открия, би трябвало да е лесно. Ако искаш ми прати целия файл на мейла и ще го видя на бързо. Ще ти пратя мейла на лично.
 
Re: Проблем с автоматична регистрация

За съжаление спамът продължава, въпреки че ползвам кода. Ако някой има нещо, което наистина да спира автоматичните регистрации в wp, ще бъде от голяма полза.
 
Re: Проблем с автоматична регистрация

Ней-лесният начин за борба с тия гадини за мен е филтриране на възможните е-мейли през които да е позволена регистрацията. Това работи безотказно ако сайта ти е главно насочен към български потребители.

Аз съм се защитил по следния начин и нямам никакъв проблем със спамерите:
1. Captcha
2. Активиране чрез пощата на дадения потребител
3. Филтриране на спамерските е-мейл адреси.

Има още 1 лесен начин да ги излъжеш. Повечето спам ботове ползват готовите адреси за регистрация както в твоя случай (wp-login.php) и знаят. че за wp това е адреса за регистрация. Все пак това е бот и той работи по зададен параметър. Промени файлът wp-login.php на wp-login1.php и спам бота просто спира да го разпознава.

При мен работи :)
 
За: Проблем с автоматична регистрация

За: Проблем с автоматична регистрация

NeZiRuS не е споменал, но ако само промениш името на файла wp-login.php, то ще спрат да работят някои неща, като например вписването, регистрациите, забравена парола. Ще трябва да има и още ръчни промени по кода, все пак формулярите трябва да пращат данни към новия файл.
 

Горе