Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Возможность включения и отключения сеанса с двух разных мест [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Prizma
Отправлено: 02 Июля, 2012 - 20:01:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action="ссылка на мой код" method="post">
  3. <p style="margin:0px;">Введите логин:</p><input type="text" name="login" size="25" maxlength="20" value="" /><p style="margin:0px;">Введите пароль:</p><input type="password" name="password" size="25" maxlength="20" value="" /><input type="submit" value="Войти" />
  4. </form>
  5.  

вот код если для тебя это не очевидно
 
My status
 Top
armancho7777777 Супермодератор
Отправлено: 02 Июля, 2012 - 20:03:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Prizma пишет:
предпологается что они поступают в данный мною скрипт из формы разве это не очевидно?

)) Вы не знаете даже элементарных основ языка, молодой человек.
Прекратите со всеми спорить и начинайте уже учить для начала основы.

(Отредактировано автором: 02 Июля, 2012 - 20:28:44)

 
 Top
Prizma
Отправлено: 02 Июля, 2012 - 20:08:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Мелкий пишет:
Копипаст - худший помощник разработчика.
угу) исправил снова
Мелкий пишет:
И всё равно - где хоть какое-то экранирование данных? Почему, когда вы используете значения только одной строки, используете цикл? Уберите уже нотайсы из самого первого условия.
а без цикла будет работать функция mysql_fetch_array?

по нотайсам над скрипт подключить к сайту ... много их там? так лениво
 
My status
 Top
Мелкий Супермодератор
Отправлено: 02 Июля, 2012 - 20:25:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Форма мне совершенно безразлична.
Ладно, намёки остаются непонятыми:

0) где mysql_real_escape_string? (вопрос использования устаревшего mysql_* на сегодня оставлю в стороне)
1)
Prizma пишет:
if((strlen($_POST['login'])>0)and(strlen($_POST['password'])>0))

При заходе методом GET как минимум 1 нотайс будет всегда за обращение к неинициализированному члену массива
2)
Prizma пишет:
preg_match('#^[0-9a-zA-Z]{3,25}$#', $_POST['password'])

С чего вы решили себя вправе как-то ограничивать максимальную сложность пароля?
2.5) почему пароли хранятся открытым текстом?
3)
Prizma пишет:
if(mysql_num_rows($zapros)>0){ # проверяем выдал ли нам что нибудь запрос

Где ветка else?
4)
Prizma пишет:
# если пост данных не поступило значит проверяем есть ли у пользователя куки-данные

И чуть ниже
Prizma пишет:
$zapros = 'SELECT sess FROM `users` WHERE login =\''.$_POST['login'].'\' and password=\''.$_POST['password'].'\';'

Взаимоисключающие параграфы, не находите?
5) Про SQL-инъекции уже говорил неоднократно
6)
Prizma пишет:
if(($date)<(time()+$life)){ # проверяем не устарела ли кука

Условие будет исполнено всегда. Время последнего запроса не может быть больше текущего времени + некоторое число (кроме 0 и отрицательного, что не подходит по смыслу всего кода).
7) очередной цикл над результатом, который должен-то 1 строку возвращать.

Общий уровень кода тоже не блещет, но сияет копипастом - но это придёт с опытом, смею надеяться.

Prizma пишет:
Напомню что я конкретно этот код не тестил

Укажу, что я ни этот, ни тем более его прообраз и не пытался запускать даже.
(Добавление)
Prizma пишет:
а без цикла будет работать функция mysql_fetch_array?

А куда она денется? Она не является частью цикла. Это просто функция.


-----
PostgreSQL DBA
 
 Top
Prizma
Отправлено: 02 Июля, 2012 - 20:45:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




спасибо за замечания Улыбка темку можно в корзину...

только пару вопросов если не сложно:
1. натайс при заходе методом гет? тоесть из-за отсутствия пост переменной будет ошибка? а если вот так сделать
PHP:
скопировать код в буфер обмена
  1. if((isset($_POST['login']))and(isset($_POST['password'])))
ошибки не будет?
2.
Цитата:
С чего вы решили себя вправе как-то ограничивать максимальную сложность пароля?
ну мало ли пользователь в поле пароля написал какой то бред (при регистрации тоже эти символы ограничены) что бы дальше код не исполнялся сразу откинуть этот вариант
3.
Цитата:
почему пароли хранятся открытым текстом?
подскажи пожалста функцию для кодирования, раскодирования или материал на эту тему...


PHP:
скопировать код в буфер обмена
  1. if(($date)>(time()-$life)){ # проверяем не устарела ли кука
вот так правильно будет...

пойду дальше учить язык Закатив глазки
 
My status
 Top
Мелкий Супермодератор
Отправлено: 02 Июля, 2012 - 20:50:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Prizma пишет:
ошибки не будет?

Да, так правильно.

Prizma пишет:
ну мало ли пользователь в поле пароля написал какой то бред (при регистрации тоже эти символы ограничены) что бы дальше код не исполнялся сразу откинуть этот вариант

А зачем? А если я предпочитаю использовать 32-символьный пароль, являющийся осмысленным бредом?

Prizma пишет:
подскажи пожалста функцию для кодирования, раскодирования или материал на эту тему...

md5 или sha1 (лучше второй, md5 всё же устарел). Раскодирование не нужно, прогоняете введённый пароль через тот же алгоритм, что и при регистрации - если хеши совпали, то пароль верен.
Материала не подскажу, гуглить лениво. + используйте соль (что такое и зачем - в любом адекватном материале написано. Если не написано - ищите другую статью Радость )


-----
PostgreSQL DBA
 
 Top
Prizma
Отправлено: 02 Июля, 2012 - 20:55:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Мелкий пишет:

А зачем? А если я предпочитаю использовать 32-символьный пароль, являющийся осмысленным бредом?
ну при регистрации то тоже ограничение Подмигивание ладно пофиг на это)

спасибо пойду почитаю про соль Улыбка)
 
My status
 Top
EuGen Администратор
Отправлено: 02 Июля, 2012 - 23:35:23
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Prizma пишет:
1. Авторизируешься

Ложная посылка. На второй машине авторизация и не будет создана, вместо чего будет копирование данных с той, где авторизация уже есть (и логично - ведь этими данными клиент располагает, Вы же сами их ему послали). И если клиенты идентичны (HTTP_USER_AGENT, REMOTE_ADDR и т.п.) - то никак их и не различить будет.
Про уязвимости здесь уже указали.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB