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

Форум PHP

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

 

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

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

тема: Вопрос из книги головоломки на php для хакера
 
 автор: вит   (15.02.2007 в 10:01)   письмо автору
 
 

В одном из заданий написано следующее, имеется форма, если разместить ее на своем сайте злоумышленник может обратиться к ней бесчисленное количество раз, либо подбирая пароль, либо пользуясь сервисом и т.д . Нельзя ли объяснить, а зачем ее надо размещать на своем сайте, ведь для подбора пароля можно обращаться к ней удаленно. да и еще один вопрос по той же теме -"создание собственного механизма сессий". Вот код
<?php
//session_set_save_handler();
function open($save,$name){
    
$dblocation="localhost";
    
$dbuser="root";
    
$dbpass="";
    
$dbname="bd";
 
$dbcon=mysql_connect($dblocation,$dbuser,$dbpass);
 if (!
$dbcon)die("Недоступен сервер бд");
 
$dbsel=mysql_select_db($dbname);
 return 
true;
}
function 
close(){
    
mysql_close();
    return 
true;
}
function 
read($id){
    
$sql="SELECT value FROM session WHERE session='".$id."'";
    
$query=mysql_query($sql);
    
$session=mysql_fetch_array($query);
    return 
$session['value'];
}
function 
write($id,$data){
    
$sql="SELECT count(*) FROM session WHERE session='".$id."'";
    
$query=mysql_query($sql);
    if (
mysql_num_rows($query)>0){
        
$sql="UPDATE session SET putdate=now(),value='".$data."' WHERE session='".$id."'";
        
$query=mysql_query($sql);
        return 
false;
    }
    else  {
        
$sql="INSERT INTO session VALUES(0,'".$id."',now(),'".$data."'";
        
$query=mysql_query($sql);
        return 
true;
    }
}
function 
destroy($id){
    
$sql="DELETE FROM session WHERE session='".$id."'";
    
$query=mysql_query($sql);
    return 
true;
}

function 
gc($lifetime){
    
$sql="DELETE FROM session WHERE putdate < now() - interval 20 minutes";
    
$query=mysql_query($sql);
    return 
true;
}
session_set_save_handler("open","close","read","write","destroy","gc");
session_start();
?>

сверился с вашим решением, вроде все одинаково, но почему-то отказывается работать

   
 
 автор: cheops   (15.02.2007 в 11:58)   письмо автору
 
   для: вит   (15.02.2007 в 10:01)
 

1) Удалённо подбирать пароль в современных условиях практически не реально, даже если на один пароль будет тратиться одна секунда - его подбор может растянуться на длительное время, с большей вероятностью сайт перестанет существовать, чем злоумышленик подберёт пароль удалённо. Все подборы паролей, как правило, осуществляются локально - либо внедряется скрипт на сервер, либо воруется база хэшей.
2) Ошибки какие-нибудь возвращаются?

PS Под разные вопросы, лучше заводить разные темы.

   
Rambler's Top100
вверх

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