PHP.SU

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

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

> Найдено сообщений: 9
Olegarh1a Отправлено: 15 Февраля, 2021 - 16:27:05 • Тема: Защита сессий • Форум: Вопросы новичков

Ответов: 11
Просмотров: 659
Есть несколько вариантов на сколько они эффективны
1может создать своего рода электронный ключ который будет генерироваться случайно и при заходе проверять его (тогда прийдётся отдельную бд что ли делать если я правильно понимаю) ?
2привязывать сессию к пользователю (например к ip ну такое себе)- как по мне глупый вариант ?
3 Как вы защищаете свой сайт хотя бы расскажите логику Радость
4 Читал на хабре про соль(Salt) так и не понял. может у кого есть отличная статья где, куда, что солить и применение на реальном примере для (тугих Радость )
Olegarh1a Отправлено: 12 Февраля, 2021 - 23:34:30 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
dcc0 пишет:
http://forum.php.su/topic.php?fo...1&topic=4120

Здесь же на форуме.
Вероятно, как-то так:

Спойлер (Отобразить)

Это где-то в самом начале должно быть.

Может быть, даже, как в этом примере, внизу, циклом:
https://stackoverflow[dot]com/questi[dot][dot][dot]htmlspecialchars



P.S.
Я только подзабыл: нужно ли переопределять $_POST и $_GET или лучше прямо с ними работать для регистрации и авторизации?!


Вот оно как теперь всё стало на свои места. я $data полностью переписывал(тупоголовый)
спасибо.
А ведь я сам ответил на свой вопрос когда задал его Радость
у меня на этом сайте не работает переадресация в поиске ввожу пишет
Обработка запроса выполнена.
Найдено тем: 488
Ожидайте результаты.
и перенаправление не работает
Olegarh1a Отправлено: 12 Февраля, 2021 - 22:11:12 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
dcc0 пишет:
И так тоже возможно. Можно использовать также preg_match для проверки логина и пароля при регистрации.


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once __DIR__. './../include/db.php';
  3.  
  4. $data = $_POST;
  5.     if(isset($data['signin'])) {
  6.         $errors = array();
  7.         $users = R::findOne('users', 'login = ?', array($data['login'])); //Создаём users ищем в таблице users столбец login, который введёт поьзователь с массива data[login]
  8.        
  9.             if( $users > 0 )
  10.             {
  11.                 if(password_verify($data['password'], $users->password))
  12.                 {
  13.                     echo 'Вы зашли'; //
  14.                 }else
  15.                 {
  16.                     $errors[] = 'Не верно введён пароль';
  17.                 }
  18.             }else
  19.             {
  20.                 $errors[] = 'Пользователь с таким ником не найден ';
  21.             }
  22.         if(!empty($errors))
  23.         {
  24.             echo '<div>'.array_shift($errors). '</div>';
  25.         }
  26.     }


Как экранировать теги наэтом примере при помощи htmlentities
Olegarh1a Отправлено: 12 Февраля, 2021 - 21:31:37 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
[quote=dcc0][/quote]

сколько людей столько мнений мне уже посоветовали htmlentities
но всё же как обработать массив с данными ?
Olegarh1a Отправлено: 12 Февраля, 2021 - 21:07:48 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
dcc0 пишет:
Иногда трудно понять уровень знаний.
1) Проверку формы можно сделать на JavaScript: до отправки формы проверять её и выводить сообщение.

2) Можно сделать возврат обратно на страницу с формой после проверки её скриптом /proccesSignup.php и вывести сообщение об ошибке уже здесь.

3) Можно подключать файл /proccesSignup.php через include по условию на странице с
формой и никуда не переходить. Всё будет происходить на одной странице.

4) Можно сделать проверку и переход на php и JS или html.

Пример. Это страница с формой. Здесь проверяем поля:

Спойлер (Отобразить)


В form не прописан атрибут action, переход произойдёт по условию выше
Спойлер (Отобразить)





P.S. Может быть, лучше показать, как сделано?!



(Добавление)
Второй вариант с возвратом.

Это файл index.php

Спойлер (Отобразить)

Спойлер (Отобразить)


Заполняем форму и уходим на страницу ./php/proccesSignup.php
Страница ./php/proccesSignup.php
Спойлер (Отобразить)


Для наглядности: http://comb[dot]org[dot]ru/test/index.php
Я всунул обработчик там где и форма.

И вопрос ещё 1 как функцией htmlspecialchars обрабатывать данные c массива $data = $_POST
а то я был приятно удивлён когда в форме входа ввёл
PHP:
скопировать код в буфер обмена
  1. <body style="display:none;"</body>
Olegarh1a Отправлено: 12 Февраля, 2021 - 14:52:30 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
dcc0 пишет:
Доброго!
Суть вопроса до конца не уловил.
Есть как минимум два варианта перенаправления:
1) Через поле form, атрибут action - встроенное средство html
2) Перенаправление с помощью html/js/php по условию.

Т.е.:
1) Пользователь заполнил форму и нажал кнопку "отправить".
2) Скрипт на этой же странице обработал данные из формы.
Обработчик можно подключить через include.
3) Далее условие:
а) Если с формой всё в порядке, перенаправление на главную.
б) Если нет, то остаёмся на текущей странице и показываем сообщение.


Ещё не могу сформулировать правильно вопрос попробую рассказать по действиям
И так Форма лежит в корне, а обработчик в папке
Пользователь переходит на форму регистрации ->
Заполняет поля:
Логин:
пароль:
email:
если всё правильно ввёл его перенаправляет на форму с авторизацией -> это я сделал
НО (сорри за капс)
если он не правильно заполняет поле допустим логин и нажимает регистрация
ему выводится ошибка
ошибка выводится по адрессу mysite.loc/php/proccesSignup.php
а мне надо что бы ошибка выводилась в самой форме mysite.loc/index.php
Olegarh1a Отправлено: 12 Февраля, 2021 - 12:16:07 • Тема: Обработчик формы и форма в разных местах • Форум: Вопросы новичков

Ответов: 11
Просмотров: 568
Есть сама форма которая лежит в корне index.php и есть обработчик который лежит в папке ./php/proccesSignup.php
Если при успешной регистрации перенаправляем пользователя на главную страницу это есть.
Но как сделать вывод
Спойлер (Отобразить)
ошибок допустим напротив полей в файле index.php без ajax.
Olegarh1a Отправлено: 10 Февраля, 2021 - 18:30:07 • Тема: Разрешить некоторые символы • Форум: Регулярные выражения

Ответов: 3
Просмотров: 1428
Мелкий пишет:
Проверьте минимальную длину пароля. Всё. Какая вам разница, какой пароль хочет использовать пользователь? Какой смысл в ограничении всего лишь в 30 символов?

Про sql injection - см. prepared statements.


А как же XSS-атака возможно же вставить html теги в поле password и каки можно наделать. как правильно фильтровать или экранировать ?
Olegarh1a Отправлено: 10 Февраля, 2021 - 12:12:27 • Тема: Разрешить некоторые символы • Форум: Регулярные выражения

Ответов: 3
Просмотров: 1428
есть регулярка для поля login
PHP:
скопировать код в буфер обмена
  1. $pattern_login = '/^[a-zA-Zа-яА-ЯЁё0-9_-]{1,30}$/u';

Проверяем условием
PHP:
скопировать код в буфер обмена
  1.   if(!preg_match($pattern_login, $_POST['login']))
  2.         {
  3.          echo 'Не работает';
  4.         }

Дальше идёт пароль
В
PHP:
скопировать код в буфер обмена
  1. $pattern_password = '/^[a-zA-Zа-яА-ЯЁё0-9_-]{6,30}$/u';
Сюда же надо добавить разрешить всё кроме (кавычек, одинарных кавычек, обратных кавычек, знак больше, меньше (",',`,<,>))
И ещё вопрос спасёт это от SQL инъекций, по моей логике не один sql запрос не возможен без ' '
Да и в обще насколько это безопасная защита ?
Изучаю php не давно всё хорошо более менее понятно но стоило мне дойти до регулярных выражений мир перевернулся

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB