Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 07.04.2017, 10:09   #1
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
БД MySQL проверка данных

Приветствую уважаемые.
Сразу скажу, что с БД ни когда дело не имел.
Собственно такой вопрос. К примеру пользователь зарегистрирован в программе, в бд находятся логин пароль и лиц ключ. При подключении, а именно ввода логина я хочу проверить существует ли данный пользователь в БД, далее если существует то поле лиц ключа нужно проверить в другой БД где занесены списки ключей зарегистрированных пользователей. Если данный ключ есть в базе то даём добро на вход в программу, если нет данного ключа то ошибка.
Можно ли это все организовать средствами самого клиента который подключается и БД на хостинге.
Или придётся ещё дополнительно для такой проверки, что организовывать?
Спасибо.
__________________
(Offline)
 
Ответить с цитированием
Старый 07.04.2017, 10:54   #2
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: БД MySQL проверка данных

В случае с сайтами проверка и делается на стороне клиента в блоке php кода. Делается подключение к БД, запрос пользователей и проверка например input поля и данных из БД. В случае успешной проверки получаешь дополнительные данные.
(Offline)
 
Ответить с цитированием
Старый 07.04.2017, 11:56   #3
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

У меня ни сайт, программа которая получает данные с БД. Вот и хотел поинтересоваться, нужно ли сторонии фичи какие нибудь писать (скрипты php) или еще что то там(я не знаю), или достаточно запросами от клиента это все проверять?
То есть отослали запрос, на стороне сервера(MySQL) запустили некий скрипт который и будет выполнять данную проверку того чего я описал. Методом MySQL возможно это все организовать? Или придется дополнительно, что то писать, вкуривать и тд.
__________________
(Offline)
 
Ответить с цитированием
Старый 07.04.2017, 12:21   #4
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: БД MySQL проверка данных

Лучше сделать сайт с php скриптом к которому обращается прога для безопасности и универсальности.
Так же можно сделать запрос прям к БД с сортировкой. Хз какой именно запрос нужен, что то типа WHERE input (поле в проге) == users (таблица в БД) и если БД вернет массив данных, то значит такой юзер есть.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
L-ee-X (07.04.2017)
Старый 07.04.2017, 14:14   #5
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

Вот тоже думал для безопасности через php скрипт сделать.
Спасибо за советы.
Может еще кто, что посоветует
__________________
(Offline)
 
Ответить с цитированием
Старый 08.04.2017, 15:06   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: БД MySQL проверка данных

Ну между базой и пользователем по-любому должен быть интерфейс какой-то. Если коннектиться напрямую к базе, то это у каждого пользователя будет потенциально полный доступ к твоей базе данных с возможностью изменять любые данные. И как ты пароль к базе ни прячь внутри своей проги, его по-любому кто-то найдёт и использует, будь уверен.

На самом деле реализуется это всё элементарно на том же PHP, буквально в 20 строк кода, а то и меньше.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Phantom за это полезное сообщение:
L-ee-X (08.04.2017), St_AnGer (08.04.2017)
Старый 08.04.2017, 22:14   #7
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

Ну то есть, мы делаем некий запрос к PHP скрипту который находится на серваке, а этот самый PHP скрипт делает обработку которую нужно, и отправляет данные клиенту который выполнял запрос. Верно я понимаю?
Про прямой доступ конечно это лажа, так как в самой программе придется прописывать и логины и пароли, конечно вероятность взлома стопроцентная. Про PHP скрипт тоже подумывал, реализовать запрос через него. Только пока с этим не особо дружу. Будем вкуривать. Благо интернет сейчас пестрит инфой.
__________________
(Offline)
 
Ответить с цитированием
Старый 08.04.2017, 22:30   #8
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: БД MySQL проверка данных

Сообщение от L-ee-X Посмотреть сообщение
Ну то есть, мы делаем некий запрос к PHP скрипту который находится на серваке, а этот самый PHP скрипт делает обработку которую нужно, и отправляет данные клиенту который выполнял запрос. Верно я понимаю?
Именно так. Только не забудь входящие переменные экранировать и вообще почитай про защиту в скриптах. А то элементарный запрос в переменной может уложить всю базу я один раз напоролся на эту штуку (sql injection так называемый) - теперь очень осторожен с подставлением переменных в запрос

Вот на вики статья на эту тему: тыц

Сообщение от L-ee-X Посмотреть сообщение
Только пока с этим не особо дружу. Будем вкуривать. Благо интернет сейчас пестрит инфой.
Пых вообще крайне элементарная штука, так что всё получится
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
L-ee-X (08.04.2017)
Старый 15.04.2017, 16:30   #9
mingw
ПроЭктировщик
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 138
Написано 71 полезных сообщений
(для 155 пользователей)
Ответ: БД MySQL проверка данных

Хорошим тоном считается не хранить логин и пароль пользователя. Вместо этого хранить хэш-ключ из логина+пароля+контрольная сумма
(Offline)
 
Ответить с цитированием
Старый 16.04.2017, 08:17   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: БД MySQL проверка данных

Сообщение от mingw Посмотреть сообщение
Хорошим тоном считается не хранить логин
Нет. И про соль тоже фигня. Это всё было актуально когда работал md5 и все были довольны.
Криптостойкость алгоритма md5 уже давно была дискредитирована - он устарел. Что использовать вместо него? Bcrypt? Почти.

Тебе нужны эти функции:
http://php.net/manual/ru/function.password-verify.php
http://php.net/manual/ru/function.password-hash.php

Пример использования (в ответах смотрим):
http://stackoverflow.com/questions/2...assword-verify

Выбор актуального алгоритма хеширования с приемлемым соотношением цена/стойкость тут отдан на откуп разрабам php, так что можно расслабить булки и перестать изобретать хрень с солями и прочей фигнёй, которая, кстати, не особо спасает от коллизий.

Так же стоит отметить, что при работе с БД лучше использовать PDO с механизмом prepared statement: http://php.net/manual/ru/pdo.prepared-statements.php
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
L-ee-X (17.04.2017), St_AnGer (16.04.2017)
Старый 16.04.2017, 15:38   #11
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: БД MySQL проверка данных

Randomize, так он даже не упоминал md5. А в password_hash можно было использовать соль до php7, судя по документации. В общем-то речи про алгоритм хэширования вообще не шло, лишь было сказано, что нужно это делать. Правда, я не понял, зачем хэшировать ещё и логин (вместо соли?) и контрольную сумму (чего? логина и пароля?).
(Offline)
 
Ответить с цитированием
Старый 17.04.2017, 00:51   #12
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: БД MySQL проверка данных

Сообщение от Phantom Посмотреть сообщение
Randomize, так он даже не упоминал md5. А в password_hash можно было использовать
Переопределять генерацию соли по умолчанию можно и щас:
password_hash($pwdPASSWORD_DEFAULT, ['salt' => function($sheet){
  return 
'охренительная соль';
}]); 
Рассказал про это выше только чтоб не делали по древним туторам с md5+salt.
Логин скорее не хешировать, а соль от него делать, ну идея нормальная, правда, опять же, мало смысла в этом - радужные таблицы.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
L-ee-X (17.04.2017), Phantom (17.04.2017), St_AnGer (17.04.2017)
Старый 17.04.2017, 16:50   #13
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

Всем спасибо за ответы.
__________________
(Offline)
 
Ответить с цитированием
Старый 17.04.2017, 17:15   #14
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

Еще такой вопрос. Хочу ограничить доступ к программе, чтоб под одним логином не смогли войти допустим два клиента, верно ли я понимаю что в бд нужно создать некую переменную и когда пользователь подключен она допустим меняется на единицу но перед подключением проверяет ее. Если она равна нулю то подключаемся, если нет то ошибка.
__________________
(Offline)
 
Ответить с цитированием
Старый 17.04.2017, 17:18   #15
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: БД MySQL проверка данных

Сообщение от mingw Посмотреть сообщение
Хорошим тоном считается не хранить логин и пароль пользователя. Вместо этого хранить хэш-ключ из логина+пароля+контрольная сумма
Про этот тон я знаю. Спасибо за совет.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:22.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com