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

Форум PHP

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

 

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

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

тема: Безопасный скрипт

Сообщения:  [1-10]    [11-20]  [21-23] 

 
 автор: Trianon   (29.06.2006 в 09:46)   письмо автору
 
   для: Diablo_   (28.06.2006 в 20:41)
 

 select count(login)  

Если Вы просите строки пользователей, то проверять надо число строк в запросе.
Если Вы просите число таких строк, то проверять надо сам результат.
<?
$my
->sql_query="select count(login)  from autt where login='$login' and pass = '$hash'"
$my->sql_execute(); 
if (@
mysql_result($my->sql_res,0) != 1
    
$login2='Вы не зарегестрированы!'
else 
    
$login2=htmlspecialchars($_POST['login']); 
?>

   
 
 автор: Diablo_   (28.06.2006 в 20:41)   письмо автору
 
   для: valenok   (28.06.2006 в 12:38)
 

Извините, что вновь поднимаю эту тему, но код не срабатывает! Постоянно пишит, что не зарегин.!

<?
$login
=$_POST['login'];  $pass=$_POST['pass']; 

if(
get_magic_quotes_gpc())    
     
$pass  stripslashes($pass); 
else 
$login addslashes($login); 
$hash md5($pass); 
require_once(
"sql.class.php"); 

$my = new class_sql
$my->sql_connect(); 


$my->sql_query="select *  from autt where login='$login' and pass = '$hash'"
$my->sql_execute(); 

if (@
mysql_result($my->sql_res,0)!=1
    
$login2='Вы не зарегестрированы!'
else 
    
$login2=htmlspecialchars($_POST['login']); 

echo 
"Добрый день, $login2"
?> 

   
 
 автор: valenok   (28.06.2006 в 12:38)   письмо автору
 
   для: Trianon   (28.06.2006 в 12:36)
 

Не. Я решил что сказал ерунду какуюто.
Забыл что во второй раз при сверке пароль в базу не уходит

   
 
 автор: Trianon   (28.06.2006 в 12:36)   письмо автору
 
   для: valenok   (28.06.2006 в 10:25)
 

>Тоесть вы хотите сказать что когда пользователь проходит
>регистрацию, хостер нагло отключаеть magic_quotes
>но вот когда он авторизируется.. На зло включает..
Откуда такой вывод?

   
 
 автор: valenok   (28.06.2006 в 11:46)   письмо автору
 
   для: Diablo_   (28.06.2006 в 11:29)
 

если пароль хешируется то проверка бессмысленная.

   
 
 автор: Diablo_   (28.06.2006 в 11:29)   письмо автору
 
   для: valenok   (28.06.2006 в 10:25)
 

Мне все говорили, что проверку на введенияч пароля, нужно делать обязательно!

   
 
 автор: valenok   (28.06.2006 в 10:25)   письмо автору
 
   для: Trianon   (28.06.2006 в 10:17)
 

Тоесть вы хотите сказать что когда пользователь проходит регистрацию, хостер нагло отключаеть magic_quotes
но вот когда он авторизируется.. На зло включает..

   
 
 автор: Trianon   (28.06.2006 в 10:17)   письмо автору
 
   для: Diablo_   (27.06.2006 в 23:30)
 

>1. я не хранил пароль в открытом виде, просто так написал,
>для примера!
>2. Можите пояснить, что вот это такое?
>>if(get_magic_quotes_gpc())
> $pass = stripslashes($pass);
>else $login = addslashes($login);


Строка логина преобразуется в литеральную константу SQL, для сравнения с полем из таблицы в БД. Путем экранирования спецсимволов. Если она еще не преобразована механизмом магических кавычек.
Если этого не сделать, в скрипте окажется дыра SQL-инъекции, не говоря уже о том, что логины содержащие некотрые символы, не будут нормально обрабатываться.

Строка пароля, наоборот, должна быть чистой - по ней вычисляется хеш. И поэтому, если
механизм магических кавычек успел её "подправить", её нужно вернуть к исходному виду.
Иначе хеш не сойдется и пароль не будет опознан.

   
 
 автор: Trianon   (28.06.2006 в 10:09)   письмо автору
 
   для: Diablo_   (28.06.2006 в 01:02)
 

>3. А куда подевалась проверка на введён или нет пароль и
>логин?

а зачем она нужна?

   
 
 автор: Trianon   (28.06.2006 в 09:56)   письмо автору
 
   для: Diablo_   (28.06.2006 в 08:54)
 

Пардон. Наврал слегка. Сейчас исправлю.
<? 
$login
=$_POST['login'];  $pass=$_POST['pass']; 

if(
get_magic_quotes_gpc())   
     
$pass  stripslashes($pass); 
else 
$login addslashes($login); 
$hash md5($pass); 
require_once(
"sql.class.php"); 

$my = new class_sql
$my->sql_connect(); 

$my->sql_query="select count(login) from autt where login='$login' and pass = '$hash'"
$my->sql_execute(); 

if (@
mysql_result($my->sql_res,0)!=1
    
$login2='Вы не зарегестрированы!'
else 
    
$login2=echo(htmlspecialchars($_POST['login'])); 

echo 
"Добрый день, $login2"
?>

   

Сообщения:  [1-10]    [11-20]  [21-23] 

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

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