RealDevil: Покажите что вы умеете, если не очень - лучше еще подучиться, а потом предлагать свои услуги. Дабы не нахвататься лишней критики, как обычно бывает на форумах:)
Cranking: Snoopik, не тратьте чужое время, сначала научитесь рисовать, может это вобще не ваше.
Нарисуйте для себя 5 баннеров, 5 логотипов, 5 дизайнов разных тематик...
dnlake: А не проще ли хранить в базе хэш пароля и логина, а после определения, что оба поля заполнены шифровать их и сравнивать с хэшем из базы? При таком алгоритме вообще не нужны проверки, из-за чего ощутимо повысится производительность.
Посмотрите скрипт..с паролями так сделано..только без соли
$fun = new Func();
if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) {
$logi = $fun->parser( trim ( $_POST ['logi'] ) );
$pass = $fun->parser( trim ( $_POST ['pass'] ) );
$query = "SELECT * FROM users WHERE login = '" . mysql_real_escape_string($logi) . "' LIMIT 1";
$result = mysql_query ( $query );
$num = mysql_num_rows ( $result ) or die(mysql_error());
$row = @mysql_fetch_array ( $result );
if ($num == '0') {
$_SESSION ['aut'] = '0';
echo 'Извините, но такого пользователя не существует.';
echo '<meta http-equiv="refresh" content="3 url=/usercp/">';
} else {
if ($row ['pass'] != md5 ( $pass )) {
echo 'Извините, но пароль не верный!';
} else {
if ($row ['adm'] == '1') {
$_SESSION ['aut'] = '2';
echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/admin/">';
} else {
$_SESSION ['aut'] = '1';
echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/main/">';
banshee(oleg): Мдааа )))
Ну вы данные формы через POST передаете скрипту. Вот и передадут то, что я написал.
Необходимо кавычки слешить с помощью addslashes или аналогов.
Код выше лучше, т.к. дальше все-равно идет проверка пароля (просто пройти авторизацию без пароля, как в скрипте из вашего первого поста не удастся), но по-прежнему содержит скулю (трим обойдется через %20, strip_tags нам не помешает) - в данном случае по-прежнему получится брутом через blind sql узнать md5 хеш.
dlyanachalas: SQL-инъекция она на то и SQL, что не к файлам доступ позволяет получить, а к базе.
Как защитить код? вот и сам код
if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) {
$logi = trim ( strip_tags ( $_POST ['logi'] ) );
$pass = trim ( strip_tags ( $_POST ['pass'] ) );
$query = "SELECT * FROM users WHERE login = '" . $logi . "' LIMIT 1";
$result = mysql_query ( $query );
$num = mysql_num_rows ( $result );
$row = @mysql_fetch_array ( $result );
if ($num == '0') {
$_SESSION ['aut'] = '0';
echo 'Извините, но такого пользователя не существует.';
echo '<meta http-equiv="refresh" content="3 url=/usercp/">';
} else {
if ($row ['pass'] != md5 ( $pass )) {
echo 'Извините, но пароль не верный!';
} else {
if ($row ['adm'] == '1') {
$_SESSION ['aut'] = '2';
echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/admin/">';
} else {
$_SESSION ['aut'] = '1';
echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/main/">';
Класс
Код авторизации:
Это как из вариантов)
p.s понравилось, поставь репу)
Один из людей заказывал просто дизайн, на строительную тематику.
Вот что получилось.
Строо не судите, смотрите тема, как называется "дизайнер - новичок".
Вот
Можно за отзыв сайт?
Покажите что вы умеете, если не очень - лучше еще подучиться, а потом предлагать свои услуги. Дабы не нахвататься лишней критики, как обычно бывает на форумах:)
Деаю сейчас для одного выложу...покажу..=)
Snoopik, не тратьте чужое время, сначала научитесь рисовать, может это вобще не ваше.
Нарисуйте для себя 5 баннеров, 5 логотипов, 5 дизайнов разных тематик...
Для себя я рисовал!
А не проще ли хранить в базе хэш пароля и логина, а после определения, что оба поля заполнены шифровать их и сравнивать с хэшем из базы? При таком алгоритме вообще не нужны проверки, из-за чего ощутимо повысится производительность.
Посмотрите скрипт..с паролями так сделано..только без соли
Вот итоговый вариант
Мдааа )))
Ну вы данные формы через POST передаете скрипту. Вот и передадут то, что я написал.
Необходимо кавычки слешить с помощью addslashes или аналогов.
Код выше лучше, т.к. дальше все-равно идет проверка пароля (просто пройти авторизацию без пароля, как в скрипте из вашего первого поста не удастся), но по-прежнему содержит скулю (трим обойдется через %20, strip_tags нам не помешает) - в данном случае по-прежнему получится брутом через blind sql узнать md5 хеш.
Так , что делать, то?=)
SQL-инъекция она на то и SQL, что не к файлам доступ позволяет получить, а к базе.
Как защитить код? вот и сам код
Вы что-то путаете, путь к ни к какому файлу искать тут не нужно. И модреврайт от инъекции не спасет.
Спасет только mysql_real_escape_string (выше писали).
тоесть если у меня /login/ а файл где-нибудь в /includes/log/login.php, то просто делается так /login/SQL Иъекция ?