(PHP) передача логина/пароля из формы после их шифрования

v_bujak
Дата: 21.08.2006 16:54:30
есть файл с формой:
reg.php

<FORM ACTION="check_user.php" METHOD="POST">
<input type="Text" name="nic" size="20" maxlength="30
<input type="Password" name="pass" size="20" maxlength="30
<input type="submit" value="Вход" name="submitButton">
</FORM>

и файл-обработчик формы:

check_user.php


$nic=addslashes($_POST['nic']);
$pas=addslashes($_POST['pass']);

 $query="SELECT * FROM users
         WHERE login like '".$nic."' and password like '".$pas."'";
 $result=mysql_query($query);

 if($result){
 	for($i=0;$i<mysql_num_rows($result);$i++){
	    $f=mysql_fetch_array($result);
	}
	if(strcmp($nic, $f[login])==0 && strcmp($pas, $f[password])==0){
     mysql_close();
     header("Location:index.php");
    }
    else{
    	header("Location:reg.php");
    }
 }
 else{
 	echo "There are some problems with server!";
 }
?>

необходимо зашифровать переменные nic и pass, и только потом передавать их обработчику check_user.php.

т.е. $_POST['nic'] и $_POST['pass'] уже должны быть зашифрованы.

Модератор:
Оформляйте топики согласно требованиям форума!!! Топики оформленные не по правилам - будут удаляться.
v_bujak
Дата: 21.08.2006 18:07:27
т.е. поля формы в пхп автоматом попадают в глобальную переменную $POST, а нужно чтоб они сначала зашифровались при помощи md5() или crypt() и только потом попали в $POST.
pamir
Дата: 21.08.2006 18:16:33
чудик.
1. зачем?
2. это тебе тогда надо на клиенте химичить.
3. Могу чего-то не знать, подождем ответа опытных товарищей.
v_bujak
Дата: 21.08.2006 18:29:26
так в этом то и фишка. зачем тогда нужна форма авторизации с шифрованием, если логин и пароль не защищены в $POST, ведь любой тогда сможет получить к этой переменной доступ.

Наверное придется использовать JavaScript или другой способ защиты на клиенте.
pamir
Дата: 21.08.2006 18:36:17
v_bujak
не защищены в $POST, ведь любой тогда сможет получить к этой переменной доступ.

Опаньки. А пример можно?
g613
Дата: 22.08.2006 00:06:47
v_bujak
так в этом то и фишка. зачем тогда нужна форма авторизации с шифрованием, если логин и пароль не защищены в $POST, ведь любой тогда сможет получить к этой переменной доступ.

...нуу, дерзай...


Наверное придется использовать JavaScript или другой способ защиты на клиенте.

прежде чем изобрести велосипед, почитай про ssl, если на твоем хостинге его нет, значит твоя информация не достаточно важна и заморачиваться все равно не стоит...
vovakit
Дата: 31.08.2006 09:43:57
v_bujak
так в этом то и фишка. зачем тогда нужна форма авторизации с шифрованием, если логин и пароль не защищены в $POST, ведь любой тогда сможет получить к этой переменной доступ.


хотелось бы это увидеть... и вообще, если верить вашим рассуждениям то уже бы давно все серваки рухнули и не имело бы смысла авторизованных областей. ведь все равно любой может получить доступ..


Наверное придется использовать JavaScript или другой способ защиты на клиенте.


смысл?
DocAl
Дата: 31.08.2006 09:45:38
v_bujak
так в этом то и фишка. зачем тогда нужна форма авторизации с шифрованием, если логин и пароль не защищены в $POST, ведь любой тогда сможет получить к этой переменной доступ.

Наверное придется использовать JavaScript или другой способ защиты на клиенте.

Вообще, для защиты от этого используют защищённое SSL соединение, а не занимаются фигнёй на клиенте.
Ведущая Бурильная Труба
Дата: 31.08.2006 17:12:38
Жесть. Кстати есть вариант, что на клиенте JS будет отключен.

К переменным из запроса можно получить доступ толкьо с помощью сниффера. Вот только в абсолютном большинстве локалок стоят свичи, и пропалить через них запрос будет непросто и причем слушать придется конкретно тебя. Вопрос - это кому нибудь вообще нужно? Так что имхо не стоит заморачиваться и отсылать переменную напрямую. А уж на сервере её шифровать. На всякий случай.
+
Дата: 31.08.2006 18:54:31
По-моему запрос должен быть вида
 SELECT uid FROM users
  WHERE u_login=".mysql_real_escape_string(trim($_POST['u_login']))." AND
            u_pass=md5('".mysql_real_escape_string(trim($_POST['u_pass']))."')
Без всяких LIKE и т.п. извращений.