|
|
|
|
echo "
<form method='post' action='index.php'>
User<br>
<input type='text' name='user' maxlength=20><br>
Password<br>
<input type='password' name='pswrd' maxlength=20><br><br>
<center><input type='submit' name='authorization'></center>
</form>";
if(isset($_POST['authorization']))
{
$user=mysql_escape_string($_POST['user']);
$pswrd=mysql_escape_string(MD5($_POST['pswrd']));
$nme=mysql_query("SELECT * FROM user WHERE user='$user' and password = '$pswrd'");
if(!$nme) exit ("error");
if(mysql_num_rows($nme)>0)
{
$aut = mysql_fetch_array($nme);
$_SESSION['username'] = $aut['user'];
$_SESSION['status'] = $aut['status'];
$_SESSION['id'] = $aut['id'];
echo "<html><head><META HTTP-EQUIV='REFRESH' CONTENT='1; URL=index.php'></head><html>";
}
}
echo $_SESSION['username'];
|
Собственно насколько безопасно, и что поправить если что то не то... Заранее благодарен. | |
|
|
|
|
|
|
|
для: TanTaL91
(01.10.2009 в 22:45)
| | Собственно безопасна, но может сбоить, особенно если будут включен режим магических кавычек, следует исправить строки
<?php
$user=mysql_escape_string($_POST['user']);
$pswrd=mysql_escape_string(MD5($_POST['pswrd']));
?>
|
на
<?php
$_POST['pswrd'] = MD5($_POST['pswrd']);
if (!get_magic_quotes_gpc())
{
$user=mysql_escape_string($_POST['user']);
$pswrd=mysql_escape_string($_POST['pswrd']);
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(01.10.2009 в 23:49)
| | >Собственно безопасна, но может сбоить, особенно если будут включен режим магических кавычек, следует исправить строки
> $user=mysql_escape_string($_POST['user']);
> $pswrd=mysql_escape_string(MD5($_POST['pswrd']));
>на
> $_POST['pswrd'] = MD5($_POST['pswrd']);
> if (!get_magic_quotes_gpc())
> {
> $user=mysql_escape_string($_POST['user']);
> $pswrd=mysql_escape_string($_POST['pswrd']);
> }
Прелесно...
Что при этом посчитает MD5()? Экранирующие слэши?
В чем сермяжный смысл ставить экранирование кавычек в шестнадцатеричной строке в зависимость от состояния магических кавычек?
А ведь недели не прошло, как разбирали magic quotes. Раскрутили вроде бы до последних винтиков. Ан нет... | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 00:05)
| | Ну коль ленитесь сами свой вариант приводить, приведу его за вас, я не гордый :)))
<?php
echo "
<form method='post' action='index.php'>
User<br>
<input type='text' name='user' maxlength=20><br>
Password<br>
<input type='password' name='pswrd' maxlength=20><br><br>
<center><input type='submit' name='authorization'></center>
</form>";
if(isset($_POST['authorization']))
{
if (!get_magic_quotes_gpc())
{
$_POST['user']=stripcslashes($_POST['user']);
$_POST['pswrd']=stripcslashes($_POST['pswrd']);
}
$user = mysql_escape_string($_POST['user']);
$pswrd = MD5($_POST['pswrd']);
$nme=mysql_query("SELECT * FROM user WHERE user='$user' and password = '$pswrd'");
if(!$nme) exit ("error");
if(mysql_num_rows($nme)>0)
{
$aut = mysql_fetch_array($nme);
$_SESSION['username'] = $aut['user'];
$_SESSION['status'] = $aut['status'];
$_SESSION['id'] = $aut['id'];
echo "<html><head><META HTTP-EQUIV='REFRESH' CONTENT='1; URL=index.php'></head><html>";
}
}
echo $_SESSION['username'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.10.2009 в 00:13)
| | if (get_magic_quotes_gpc()) | |
|
|
|
|
|
|
|
для: ride
(02.10.2009 в 11:01)
| | Да, конечно
<?php
echo "
<form method='post' action='index.php'>
User<br>
<input type='text' name='user' maxlength=20><br>
Password<br>
<input type='password' name='pswrd' maxlength=20><br><br>
<center><input type='submit' name='authorization'></center>
</form>";
if(isset($_POST['authorization']))
{
if (get_magic_quotes_gpc())
{
$_POST['user']=stripcslashes($_POST['user']);
$_POST['pswrd']=stripcslashes($_POST['pswrd']);
}
$user = mysql_escape_string($_POST['user']);
$pswrd = MD5($_POST['pswrd']);
$nme=mysql_query("SELECT * FROM user WHERE user='$user' and password = '$pswrd'");
if(!$nme) exit ("error");
if(mysql_num_rows($nme)>0)
{
$aut = mysql_fetch_array($nme);
$_SESSION['username'] = $aut['user'];
$_SESSION['status'] = $aut['status'];
$_SESSION['id'] = $aut['id'];
echo "<html><head><META HTTP-EQUIV='REFRESH' CONTENT='1; URL=index.php'></head><html>";
}
}
echo $_SESSION['username'];
?>
|
| |
|
|
|
|
|
|
|
для: TanTaL91
(01.10.2009 в 22:45)
| | хм... а зачем эскейпировать пароль если все-равно его перед занесением в базу через md5 прогонять??? | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 11:46)
| | чтобы можно было менять md5 на что-то свое. Да хотя бы md5($pwd, 1) . Два символа дописываешь - логика рушится. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 14:00)
| | это что-то вроде частного случая? :) | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 14:27)
| | именно md5 в исходном виде - что-то вроде частного случая. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 14:47)
| | из-за того что в случае угона базы простые пароли не сложно расшифровать? | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 15:03)
| | не понял вопроса. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 15:13)
| | а всё, врубился :)
это я неправильно понял Ваш ответ 02.10.2009 в 14:00
всё правильно..... | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 15:16)
| | хотя попробовал поэксперементировать с паролем и с различными символами после запятой без mysql_escape_string. всё вроде нормально | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 15:22)
| | плохо экспериментировали.
Если брать пароли только из цифр, и только из первой сотни - вот Вам кучка:
3, 12, 14, 18, 21, 32, 36, 38, 42, 50, 51, 54, 59, 65, 85, 86, 91, 92, 100 | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 15:40)
| | не вижу разницы, чессказать в недоумении. напишите плиз что на входе-выходе и что ожидалось | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 16:25)
| | И это лишь значения, фактически влияющие на результат.
Формально - больше.
for($i = 0; $i < 100; $i++)
{
$v = md5($i, 1);
if(mysql_escape_string($v) != $v)
echo "$i, ";
}
|
1, 3, 9, 11, 12, 13, 14, 18, 21, 32, 36, 38, 42, 50, 51, 54, 56, 59, 65, 83, 84, 85, 86, 91, 92, 96, 100 | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 16:54)
| | да.
но ведь так же всё нормально
<?php
for($i = 0; $i < 100; $i++)
{
$h = $i.',1';
$v = md5($h);
if(mysql_escape_string($v) != $v)
echo "$i, ";
}
|
| |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 17:33)
| | да.
Но ведь так же - нет?
(02.10.2009 в 16:54)
Напоминаю.
Вы (02.10.2009 в 11:46) спросили - зачем?
Я отвечаю именно на этот вопрос. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2009 в 17:42)
| | пардон.
в общем всё Вы верно сказали. впредь буду обрабатывать пароль. я сморозил. забыл что у меня магические кавычки включены.... короче ступил | |
|
|
|
|
|
|
|
для: psychomc
(02.10.2009 в 17:44)
| | Огромное всем вам спасибо, за ваше внеание к моему вопросу. Я очень рад что хотя бы раз сделал что то без особо сильных косяков =) | |
|
|
|