|
Тема
|
Най-добрата практика за идентификация през MySQL
|
|
Автор |
RzZ (непознат
) |
Публикувано | 05.07.08 23:35 |
|
Здравейте, пиша малка програмка на Java която пълни една база в MySQL. За да използва програмата всеки потребител, в самото начало, трябва да си въведе име и парола. Имената и паролите съответно се пазят в MySQL-а.
Първи начин за идентификация:
1. Създавам mysql потребител или използвам root акаунта за да се закача към сървъра.
2. В моята база данни имам таблица users където с един SELECT разбирам дали потребителското име и паролата са правилни и си продължавам нормалната работа.
При този начин ме притеснява това, че името и паролата за sql сървъра трябва да бъдат въведени в сорса на програмата и могат лесно да бъдат открити чрез декомпилиране, reverse engineering и пр.
Втория начин:
Питам потребителя за име и парола и се опитвам да се закача към сървъра с това потребителско име и парола (естествено преди това съм създал нов потребител в MySQL сървъра).
Това ми се струва по-удачен вариант, използвал съм го, но не съм убеден, че е най-доброто решение.
Моля за вашите коментари по тези два варианта, също така бих бил много благодарен за други предложения и мнения!
Мерси предварително!
| |
|
как root бе ...
Създаваш потребител creten, който има права на достъп само до там до където трябва да има.
И неговата парола може да я пазиш във файл на сървъра - няма да е толкова лесно да бъде измъкната - вервай ми.
Тоест вариант 1, но с друг специален потребител.
В същност - сигурен съм че ако паролата е в PHP файл - няма да е лесно да бъде взета, но за java - не знам.
Ако програмата си седи на сървъра - и генерира съдържание - мисля че няма страшно, ако програмата е при клиента - отделен акаунт за всеки клиент.
Bеer? Mоre?
| |
Тема
|
Re: Най-добрата практика за идентификация през MySQL
[re: RzZ]
|
|
Автор |
w (www) |
Публикувано | 06.07.08 22:02 |
|
ми мисля най използвания сценарии е описания в 2. като към него се добавя криптиране на паролата например с md5 + ключ и в бд държиш криптираната парола
може би си чувал че по подобен начин са паролите в някои версии на unix - всеки може да види файла с всички криптирани пароли
когато правиш идентификация криптираш паролата и сравняваш с тази в бд
C++ is waste of time for web development
| |
Тема
|
Re: Най-добрата практика за идентификация през MySQL
[re: w]
|
|
Автор |
sonic86 (непознат
) |
Публикувано | 16.05.09 18:52 |
|
MySql user и потребител който иска да се лог-не са 2 различни неща
MySql user-a се ползава от сервера ти(предполагам tomcat) за да се върже към базата и този user има някакви права, които ти ше птределиш. Прочети в док-а на сайта за това.
Как се прави лог ин на потребител от някаква форма(уеб, станд алоне аплицатион или квото било там): Вземаш усернаме-а и паролата, криптираш паролата с алгоритъм който си избереш, примерно SHA-1. Те се трансферират по тсп протокола към сервера с базата ти, така че дори и някои да се опитва да слуша за пароли тя ще е криптирана и няма да има проблеми. Имаи предвид че трябва да сторваш паролата в криптиран вид.Там правиш select * from users where username = "pen4o" and password = "криптираната паролла", aко има ресулт го връшташ на контролер-а който е извикал тая заявка и след това слагаш данните на усера в сешън бийн сетваш че усера е логгнат там, и когато ти трябват данни за усера ги търсиш там.
| |
|
|
|
|