Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > данные сессий


Автор: Alix36 27.12.2006, 11:37
Код

<? ob_start(); ?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?
if(isset($login) && isset($password1) && isset($password2))
{
$aut_con = mysql_connect("localhost", "", "")
   or die ("Could not connect to MySQL");

 mysql_select_db ("")
   or die ("Could not select database");
$t=mysql_query("SELECT * FROM guser WHERE glogin=\"$login\"");
    
    
$u=mysql_fetch_array($t)
or die (mysql_error());
if($password1 == $password2 && $password1 == $u['pass'])
{

setcookie("banzai", $u["id"], time()+86400000000);
setcookie("banzai2",$login,time()+86400000000);
ob_end_flush();
?>
<h1><a href=in.php>СЮДА!</a></h1>
<?

}
else
{
if($password1 != $u['pass'])
{
print "ВВЕДЕНЫЕ ПАРОЛИ НЕ СОВПАДАЮТ С ИСХОДНЫМ!";
}
print "<a href=aut.php>Попытка не пытка! </a>";
}
 
 }

?>
</head>
<body>
<? if(!isset($go))
 { ?>
 <h1 align="center">Форма авторизации
 <?php include "ver.php"; 
 print $aut_ver;?></h1>
 
<form name="autorization_form" method="post" >
  <p>Login 
    <input type="text" name="login">
  </p>
  <p>Pass 
    <input type="password" name="password1">
  </p>
  <p>Pass2
    <input type="password" name="password2">
  </p>
  <p align="center">
    <input name="go" type="submit" id="go" value="f">
  </p>
</form>
</body>
</html>
<?
}
?>

вот написал простенький скрипт авторизации. Из него передается(через кукисы) две переменных  но насколько безопасно показывать их пользователям? и могут ли они их изменить? Как от этого защититься?

Автор: usverishe 27.12.2006, 11:51
Зашифруй пароли в базе спомошью md5, юзеру в куки сохраняй тоже в md5  и всё.
З.Ы.
А зачем 2 раза вводить пароль?

Автор: Alix36 27.12.2006, 12:13
сам незнаю... там будет мыло!
мне потом эти данные нужны без md5 как их потом раскодировать?

Автор: PARROT 27.12.2006, 12:13
Тут не стоит экранировать кавычки:
Код

WHERE glogin=\"$login\"");

Модератор: Название темы должно отражать ее суть!

Добавлено @ 12:14 
md5 не раскодируется.

Добавлено @ 12:18 
http://ru.php.net/manual/ru/
http://www.phpfaq.ru/na_tanke

Автор: Mal Hack 27.12.2006, 15:27
Цитата(Alix36 @  27.12.2006,  11:37 Найти цитируемый пост)
time()+86400000000

Это работает?

В догонку к ссылкам:
Наш FAQ, где есть пример.
Про сессии: http://phpclub.ru/detail/article/sessions

Автор: Alix36 27.12.2006, 15:50
Mal Hack,
сам удивился до 2022 года... 

Автор: Mal Hack 27.12.2006, 16:32
Фишка в том, что может быть перебор, и в 4 ПХП с этим будут проблемы, в 5 отсчет с нуля пойдет.. Что не есть хорошо.
Предел вроде 2031 год.

Автор: -=Ustas=- 28.12.2006, 10:34
Цитата(Mal Hack @  27.12.2006,  16:32 Найти цитируемый пост)
Предел вроде 2031 год. 

Если мне память не изменяет то 2038 smile

ЗЫ. Сори за оффтоп

Автор: Alix36 2.1.2007, 19:01
А можете ответить на основной вопрос?
На сколько опасно что юсер сам изменит кукисы?

Автор: Mal Hack 2.1.2007, 19:17
Alix36, а ты статью почитай. Там все написано... Опасность зависит от кривизны проверок. Я ничего проверять при register_globals = On не собираюсь...

Автор: Alix36 2.1.2007, 22:44
а  безопасно работать с глобал=он но проверяя основные данные(они в куках храняться) вот таким способом

Код

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

   // MAGIC_COOKIE получена из достоверного источника.
   // Для полной уверенности необходимо проверить ее значение.

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("[email protected]", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
   echo "Обнаружено нарушение безопасности, администратор уведомлен.";
   exit;

} else {

   // MAGIC_COOKIE в данных запроса не присутствует
}
?> 

Автор: Mal Hack 2.1.2007, 22:50
Цитата(Alix36 @  2.1.2007,  22:44 Найти цитируемый пост)
а  безопасно работать с глобал=он но проверяя основные данные(они в куках храняться) вот таким способом

Поверь, даже матерые программисты порой забывают какую-ть проверку... Так что лучше в Off.

Автор: Alix36 2.1.2007, 22:52
я непонимаю как тогда можно обрабатывать данные формы если нет глобальных переменных. 
Если есть дай пример.

Автор: Mal Hack 2.1.2007, 22:59
Alix36, что значит нет? есть. $_GET, $_POST и все остальное. При register_globals=Off ты можешь быть уверен со 100% вероятностью, что $_GET это то что из адресной строки и т.п. На твоем последнем отрезке кода этого не видно

Автор: Alix36 2.1.2007, 23:02
а. тоесть где я обычно обрабатывал переменную из формы нужно писать не $a, а переменную $_POST['a']?

Добавлено @ 23:02 
форма пост отправлена не гет

Автор: Mal Hack 2.1.2007, 23:12
Да.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)