[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: безопасен скрипт регистрации?
Stun
<?php
include("hashpvpgn.php");
$db=mysql_connect('localhost','root','aa021001');
mysql_select_db('PVPGN');
mysql_query("SET NAMES 'cp1251'");
$check=mysql_fetch_array(mysql_query("SELECT username,acct_email FROM BNET WHERE login='".mysql_real_escape_string($_POST['login'])."'"));
switch($_POST)
{
case(strlen($_POST['login'])<3):
echo "Введённый вами логин содережит меньше трёх символов.";
break;
case($check['login']==strtolower($_POST['login'])):
echo "Введённый вами логин уже существует.";
break;
case(strlen($_POST['password'])<5):
echo "Введённый вами пароль содережит меньше пяти символов.";
break;
case($_POST['password']!=$_POST['repassword']):
echo "Введённый вами пароль не совпал с повторным.";
break;
case(!preg_match('/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*@([-a-z0-9]+\.)+([a-z]{2,3}|info|arpa|aero|coop|name|museum|mobi)$/ix',$_POST['email'])):
echo "Введённый вами e-mail задан некорректно.";
break;
case($check['email']==strtolower($_POST['email'])):
echo "Введённый вами e-mail уже существует в системе.";
break;
default:
$login=mysql_escape_string($_POST['login']);
$user=mysql_escape_string(strtolower($_POST['login']));
$password=mysql_escape_string(pvpgn_hash($_POST['password']));
$email=mysql_escape_string($_POST['email']);
mysql_query("INSERT INTO BNET(acct_username,username,acct_passhash1,acct_email) VALUES('$login','$user','$password','$email');");
echo "Регистрация прошла успешно";
}
?>
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<
title>Система ставок</title>
<
link href="style.css" rel="stylesheet" type="text/css">
</
head>
<
body leftmargin="0" topmargin="0" background="images/von.jpg">
<?php include("header.php");?>
<form method="post" name="reg">
<
table border="0" align="center" cellpadding="5" cellspacing="0">
<
tr>
<
td colspan="2" align="center">Регистрация:</td>
</
tr>
<
tr>
<
td>Логин:</td>
<
td><input name="login" type="text"></td>
</
tr>
<
tr>
<
td>Пароль:</td>
<
td><input name="password" type="text"></td>
</
tr>
<
tr>
<
td>Повт.Пароль:</td>
<
td><input name="repassword" type="text"></td>
</
tr>
<
tr>
<
td>E-mail:</td>
<
td><input name="email" type="text"></td>
</
tr>
<
tr>
<
td align="center"><input type="button" value="< Авторизация" onClick="location.href='authorization.php'"></td>
<
td align="center"><input name="reg" type="submit" value="Зарегистрироваться >"></td>
</
tr>
</
table>
</
form>
<?php include("copyright.php");?>
</body>
</
html>
Если у вас есть что-нибудь предложить по поводу скрипта или вы видите дыру, то отпишите!



Спустя 7 минут, 30 секунд (5.02.2011 - 18:52) alex12060 написал(а):
1. Ты забыл закрыть брейк.
2. Если я обновлю страницу, я смогу наплодить тебе 1000 однотипных аккаунтов.

Не посмотрел немного)

А так, ошибок нет вроде, но недочеты есть.

Спустя 1 минута, 17 секунд (5.02.2011 - 18:53) waldicom написал(а):
Цитата (alex12060 @ 5.02.2011 - 16:52)
2. Если я обновлю страницу, я смогу наплодить тебе 1000 однотипных аккаунтов.

Это с чего это?

Спустя 19 минут, 52 секунды (5.02.2011 - 19:13) Stun написал(а):
Ой совсем забыл сказать, что это уже предусмотрено, просто я думаю куда его header'ом отправлять. А вообще по безопасности всё нормально? rolleyes.gif

Спустя 16 минут, 56 секунд (5.02.2011 - 19:30) alex12060 написал(а):
нет, нету)
Вообще, нравится столь простой подход)

Но регулярка через-чур навороченная)

Спустя 1 час, 42 минуты, 14 секунд (5.02.2011 - 21:12) Dron19 написал(а):
нет, неправильно данные обрабатываешь, если включена директива magic_quotes_gpc - то нужно обработать сначала stripslashes`ом, а потом уже mysql_real_escape_string

Спустя 1 минута, 5 секунд (5.02.2011 - 21:13) Dron19 написал(а):
теперь нужно обрабатывать не mysql_escape_string, a mysql_real_escape_string

Спустя 8 минут, 47 секунд (5.02.2011 - 21:22) WTFTW написал(а):
Stun switch-case сдесь не нужны, нужен примерно такой алгоритм.
1. Проверяем валидность логина, пароля, п.ящика.
2. Если все нормально. То проверяем существуют ли пользователь с таким логином или почтовым ящиком.
3. Если все нормально то записываем пользователя в базу.

P.S: С безопасностью может быть у тебя и все нормально, но сам код просто .....

Спустя 3 минуты, 9 секунд (5.02.2011 - 21:25) Dron19 написал(а):
я уже сказал, с безопасностью не все нормально, он не предусмотрел одну ситуацию с магическими кавычками, то есть эта директива включена, то у него при наличии разрешимых символов может вылезти дерьмо, а не логин или еще какие-то данные

Спустя 9 минут, 16 секунд (5.02.2011 - 21:34) WTFTW написал(а):
Dron19 а может он отключил магию? а может он уже обработал супер глобальные массивы?

Спустя 11 часов, 58 минут, 47 секунд (6.02.2011 - 09:33) Stun написал(а):
Цитата (Dron19 @ 5.02.2011 - 18:25)
я уже сказал, с безопасностью не все нормально, он не предусмотрел одну ситуацию с магическими кавычками, то есть эта директива включена, то у него при наличии разрешимых символов может вылезти дерьмо, а не логин или еще какие-то данные

А что если я сделаю вот так
!preg_match("/^[A-Za-z0-9\[\]_\-]{1,15}$/",$_POST['login'])):
МНе ведь не придётся тогда заморачиваться по поводу безопасноти?

Спустя 5 часов, 22 минуты, 38 секунд (6.02.2011 - 14:56) alex12060 написал(а):
А я хочу русские буквы в логине)

Спустя 2 часа, 53 минуты, 35 секунд (6.02.2011 - 17:49) inpost написал(а):
Stun
Мой клан всегда писался через "." =) И что за любовь к квадратным скобкам и не любовь к круглым?
Обрати внимание на модификаторы: i & u =)

Спустя 42 минуты, 17 секунд (6.02.2011 - 18:31) Stun написал(а):
Ну русские не предусмотрены, даже если кто-то хочет. Ну и точку добавлю, и ещё круглые скобки.

Спустя 1 час, 11 минут, 25 секунд (6.02.2011 - 19:43) inpost написал(а):
Stun
А модификаторы для регулярки?

Спустя 22 часа, 46 минут, 11 секунд (7.02.2011 - 18:29) Stun написал(а):
Цитата (inpost @ 6.02.2011 - 16:43)
Stun
А модификаторы для регулярки?

Модификаторы? ohmy.gif What is it ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.