В последнее время на нашем форуме стали появляться случаи использования системы восстановления забытого пароля не по назначению. В частности, речь идёт о имевших в последнее время место,
множественных попытках восстановления пароля одного и того же или нескольких пользователей, из-за чего пользователям приходило большое число писем, сгенерированных форумом, с соответствующими инструкциями по активации нового пароля. Установлено, что подобные попытки производились до нескольких раз в секунду (возможно, с использованием бота), при этом задействовались китайские прокси-серверы
Для того, чтобы Вы, наши уважаемые пользователи, не сталкивались с подобной проблемой на своих форумах, предлагаю установить на странице восстановления пароля каптчу. Реализовать это очень просто
Реализация каптчи на странице восстановления пароля (Отобразить)Откройте файл
profile.php, найдите строки:
CODE: /*if ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']) {
$fm->_Message($fm->LANG['SendPassTitle'],$fm->LANG['CaptchaError']);
}*/
и замените их строками:
CODE: if ($fm->exbb['anti_bot'] === TRUE && ($fm->_String('captcha') == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha'])) {
$fm->_Message($fm->LANG['SendPassTitle'],$fm->LANG['CaptchaError']);
}
Теперь откройте файл
templates/ваш_скин/send_pass.tpl, найдите строки:
CODE: <tr>
<td class="profilleft"><b>{$fm->LANG['EnterYouName']}</b></td>
<td class="profilright"><input type="text" style="width: 200px" size="35" maxlength="35" name="membername"></td>
</tr>
<tr>
<td class="profilleft"><b>{$fm->LANG['ReSendPass']}</b></td>
<td class="profilright"><input type="checkbox" name="resend" value="yes"> <span class="desc">{$fm->LANG['ReSendPassDesc']}</span></td>
</tr>
и замените их строками:
CODE: <tr>
<td class="profilleft"><b>{$fm->LANG['EnterYouName']}</b></td>
<td class="profilright"><input type="text" style="width: 200px" size="35" maxlength="35" name="membername"></td>
</tr>
FORM;
if ($fm->exbb['anti_bot'] === TRUE) {
echo <<< FORM
<tr>
<td class="profilleft"><b>{$fm->LANG['CaptchaCode']}</b><br /><span class="desc">{$fm->LANG['CaptchaBroken']}</span></td>
<td class="profilright"><img src="regimage.php" border="0" alt="captcha"></td>
</tr>
<tr>
<td class="profilleft"><b>{$fm->LANG['CaptchaСonfirm']}</b><br /><span class="desc">{$fm->LANG['CaptchaNote']}</span></td>
<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
FORM;
}
echo <<<FORM
<tr>
<td class="profilleft"><b>{$fm->LANG['ReSendPass']}</b></td>
<td class="profilright"><input type="checkbox" name="resend" value="yes"> <span class="desc">{$fm->LANG['ReSendPassDesc']}</span></td>
</tr>
Каптча будет выводиться при условии, что в админке включена данная функция (страница
Безопасность, пункт
Активировать защиту от регистрации ботов?)
Все Ваши предложения и замечания оставляйте в этой теме