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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Безопасность скриптов.

Сообщения:  [1-2] 

 
 автор: glsv (Дизайнер)   (24.03.2005 в 19:18)   письмо автору
 
   для: Tor   (24.03.2005 в 16:46)
 

Тема защиты постоянно обсуждается на форуме.
Статьи:
http://www.softtime.ru/info/articlephp.php?id_article=35
http://www.softtime.ru/info/articlephp.php?id_article=36
Форум:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=391
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1938
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1923
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1720
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1268
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=128
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2893

   
 
 автор: Tor   (24.03.2005 в 16:46)
 
 

Интересный вариант генератора паролей описывают авторы в книге "PHP5. Практика создания web-сайтов" :
<?
$id
=md5(uniqid(rand(), true));
?>

Получается эдакий зубодробительный пароль на 32 символа.

Могу предложить альтернативу:
<?
// $PassLong - длина пароля
function PassGenerator ($PassLong) {
         
$password="";
         
// Запускаем генератор случайных чисел
         
srand(microtime()*87654);
         
// Образуем цикл
         
for ($i=1$i<=$PassLong$i++) {
             
// Генерируем произвольное число (ASCII-код)
             
$char=rand(33,126);
             
// Добавляем символ по сгенерированному ASCII-коду к паролю
             
$password.=chr($char);
         }
return 
$password;
}
?>

Отличный пароль настраиваемой длины.


Как известно, перебором можно взломать всё (теоретически). Однако в наших силах значительно замедлить этот перебор. Например так:
<?
/*
Есть база данных с хешами паролей пользователей:
CREATE TABLE users (
        UserId SMALLINT NOT NULL AUTO_INCREMENT,
        Login TINYTEXT NOT NULL,
        Password TINYTEXT NOT NULL,
        LastErrTime TINYINT DEFAULT NULL,
        PRIMARY KEY (UserId)
) TYPE=MyISAM;
*/

function LogIn ($login$pass) {
         
// Фильтруем данные
         
$login=addslashes($login);
         
$pass=addslashes($pass);
         
// Получаем время последней ошибки
         
$ErrTime=mysql_fetch_array(mysql_query("select LastErrTime from users where Login=".$login);
         
// Получаем текущее время в секундах
         
$now=time();
         
// Если с момента последней ошибки прошло не более 3 секунд...
         
if ($ErrTime[0]+3>$now) {
            
// Выводим сообщение об ошибке
            
echo ("Повторите свой запрос позже.");
            
// И обновляем время последней ошибки
            
mysql_query("update users set LastErrTime=".$now." where Login=".$login);
            return 
false;
         } else {
            
// Получаем пароль
            
$pwd=mysql_fetch_array(mysql_query("select Password from users where Login=".$login));
            
// Если пароли не совпадают...
            
if (md5($pass)!==$pwd[0]) {
               
// Обновляем время последней ошибки
               
mysql_query("update users set LastErrTime=".$now." where Login=".$login);
               
// И выводим сообщение
               
echo ("Неверный пароль.");
               return 
false;
            } else {
               echo (
"Пароль верен. Добро пожаловать, ".$login);
               return 
true;
            }
         }
}
?>

Таким вот нехитрым скриптом я серьёзно замедлил брутфорс.

Приводите здесь свои примеры и методы защиты приложений на PHP.

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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