Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от клонов.
 
 автор: skor   (11.01.2009 в 16:14)   письмо автору
 
 

Есть регистрация, в которой допускается использовать как Русские так и Английские символы.
Подскажите как сделать защиту от кловнов, создающхся путем заменой схожих по написаню букв. Например есть логин admin, в нем заменяют английскую "a" на Русскую и успешно регестрируются.

  Ответить  
 
 автор: 1prom   (11.01.2009 в 16:25)   письмо автору
 
   для: skor   (11.01.2009 в 16:14)
 

Проще запретить регистрацию с использованием букв кирилицы (латиницы)

  Ответить  
 
 автор: sd607   (11.01.2009 в 16:45)   письмо автору
 
   для: skor   (11.01.2009 в 16:14)
 

Самое лучшее разрешать использовать в логине либо только русские, либо только латинские символы.


<?php
if(!preg_match("/^[a-zA-Z@][a-zA-Z0-9@]{1,16}$|^[а-яА-Я@][а-яА-Я0-9@]{1,16}$/",$login)) {
return 
0;
}
?>


Либо такой вариант. Пользователь вводит логин, ищем его по базе, если находим, хорошо, обрабатываем в зависимости от логики. Если логин НЕ найден, меняем $rus на $eng (см ниже), и снова ищем по базе, если нашли = КЛОН, если НЕТ меняем в исходном логине $eng на $rus, снова ищем по базе, если нашли = КЛОН.


<?php
$rus
=array('А','а','В','е','Е','К','к','М','Н','О','о','Р','р','С','с','Т','Х','х');
$eng=array('A','a','B','e','E','K','k','M','H','O','o','P','p','C','c','T','X','x');

$login_temp=str_replace($rus,$eng,$login);
//поиск по базе

$login_temp=str_replace($eng,$rus,$login);
//поиск по базе
?>

  Ответить  
 
 автор: skor   (11.01.2009 в 22:41)   письмо автору
 
   для: sd607   (11.01.2009 в 16:45)
 

Спасибо большое.
К сожалению нужно использовать и кирилицу и латиницу.
Решил сразу при регистрации заменть все похожие символы на латиницу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования