本文介紹了所有WordPress版本(包括WP 3.3.1)上機器人用戶註冊的問題。我會很有興趣聽到,註冊所有這些用戶的目的是什麼,目標是什麼?

您注意到,儘管您盡最大努力僅允許人員註冊,但是您的註冊用戶的行列不斷增長?所有這些都是數據庫中的死記錄(機械假人)。每個新用戶註冊是“ wp_users </ strong>”表中的一條記錄,“ wp_usermeta </ strong>”表中約有15條新記錄。他們都沒有更改其默認密碼。總浪費

您甚至可以安裝一個CAPTCHA插件來折磨真正的人類用戶,同時輸入一個四位數的代碼來確認他們的人性,但沒有任何幫助。你沮喪地監視,新的用戶每天都在堆疊數據庫。

最後,有一天你決定停止瘋狂。這是一個簡單的代碼更改,將阻止機器人將死亡用戶添加到您的WordPress數據庫。

問題:
機器人可以通過發送POST請求並提供隨機但有效的“ user_login </ strong>”和“ user_email </ strong>”字段來繞過註冊表,偽裝實際的用戶活動。

&NBSP;

攻擊計劃
更改一個或兩個表單字段的名稱,以使標準攻擊由於無效的字段名稱而失敗。這並不意味著您永遠得到保護,但未來的攻擊必鬚根據您的特定要求進行定制,因此必鬚根據您的站點進行自定義,您可以隨時更改這些要求。

分步說明:

(01)將現有的“ wp-login.php </ strong>”的副本另存為“wp-loginOLD.php”。那就是你的後背,如果你搞砸了

(02)在你喜愛的編輯器中打開“wp-login.php”。如果記事本顯示沒有換行符的代碼,則改為使用寫字板。

(03)搜索一行代碼

case'register':</ pre>
這是註冊新用戶表單的地方。

(04)換行:
if ( $http_post ) {
	$user_login = $_POST['user_login'];
	$user_email = $_POST['user_email'];

有這樣類似的東西:

if ( $http_post ) {
	$user_login = $_POST['user_login_XYZ'];
	$user_email = $_POST['user_email_XYZ'];

其中XYZ是您自定義失真的默認字段名,以防止默認攻擊。

(05)修改行:

<p>
	<label for="user_login"><?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>
</p>
<p>
	<label for="user_email"><?php _e('E-mail') ?><br />
	<input type="email" name="user_email" id="user_email"
           class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>"
           size="25" tabindex="20" /></label>
</p>

有這樣類似的東西:

 <p>
	<label for="user_login_XYZ"><?php _e('Username') ?><br />
	<input type="text" name="user_login_XYZ" id="user_login_XYZ"
           class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>"
           size="20" tabindex="10" /></label>
</p>
<p>
	<label for="user_email_XYZ"><?php _e('E-mail') ?><br />
	<input type="email" name="user_email_XYZ" id="user_email_XYZ"
           class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>"
           size="25" tabindex="20" /></label>
</p>

記住,您不需要更改兩個字段的名稱。一個就夠了

(06)保存並測試。進行一個完整的註冊週期,並確保記錄仍在您的數據庫中創建。確保發送和接收通知,並且可以選擇默認密碼進行更改。

如果有人知道,什麼是註冊所有這些用戶隨機用戶的原因,您輸入將不勝感激。

文章來源:http://domainwebcenter.com/?p=1621