Создание безопасного входа в систему

В то время как я соглашаюсь с ответами, говоря, что Вы в основном не можете сделать этого с regex, я укажу, что некоторые возражения (интернационализировавшие символы) могут быть разрешены при помощи строк UTF, и \p{L} класс символов (соответствует unicode "буква").

6
задан John Rasch 13 July 2009 в 15:00
поделиться

4 ответа

Какой тип шифрования используется с html ??

Нет. Входные данные просто замаскированы для защиты от атак типа «Взгляд на монитор».

Если вам нужна безопасность, передавайте свои данные по HTTPS (HTTP с SSL).

Как сохранить авторизацию пользователя во время посещения мой сайт?

Большинство людей используют файлы cookie.

I Как безопасно проверить, соответствует ли правильный пароль имени пользователя ??

Безопасно?

Не использовать общий сервер. Следуйте обычным шагам для защиты данных на этом сервере. Храните пароли в виде хэшей, а не в виде простого текста.

Проверить?

Преобразовать отправленный пароль в соответствующий хэш, затем сравнить как обычно. Предполагая, что вы храните данные в базе данных, просто ВЫБЕРИТЕ ИЗ пользователей WHERE user =? И пароль =? и посчитайте количество возвращаемых строк.

11
ответ дан 8 December 2019 в 17:26
поделиться

I'll address the password protection portion of your question.

There is no built in encryption with the password input type. The browser will submit it as plain text just like everything else. There are two ways to protect the password.

The first is to set up a challenge/response system but this will require Javascript to work. Basically you take the user's password, apply a hashing function if that's the way it's stored on the server, then you take a server challenge token and salt the password value for a new hash. The server will take it's value of the password and apply the challenge as well. If they match the password is correct and there is no way for anyone to know what the actual password was. This requires javascript because the hash must be produced on the client side if this approach is to be effective.

Another, more simple option, is to require HTTPs for the log in portion of the site.

2
ответ дан 8 December 2019 в 17:26
поделиться

Как сказал Дэвид, по умолчанию пароли не шифруются, используйте https для их шифрования.

Чтобы ваш пользователь оставался в системе, на странице входа проверьте его пароль на соответствие тому, что хранится в базе данных. Вы должны хешировать свои пароли и хранить хешированные пароли в базе данных (см. crypt ). затем, когда пользователь входит в систему, хешируйте пароль пользователя и сравнивайте его с хешированным паролем в базе данных. Когда они совпадают, войдите в систему, в противном случае вход не удастся. Если ваша база данных когда-либо будет взломана, по крайней мере, у них нет паролей.

Чтобы пользователь оставался в системе, после того, как вы проверили пароль, установите переменную в сеансе, т.е.

 $_SESSION[loggedin] = true. 

При каждом запросе проверяйте эта переменная сеанса, и если она истинна, разрешить доступ к странице, если она ложна, перенаправить пользователя на страницу входа с помощью

 header("Location: /login.php");
1
ответ дан 8 December 2019 в 17:26
поделиться

ввод пароля не зашифрован. Если вы не хотите хранить пароли в виде открытого текста (возвращаемые формой), вам следует запустить одну из нескольких функций, предоставляемых как php, так и mysql. посмотрите php md5 , sha1 или mysql encrypt для хранения паролей.

Затем, чтобы проверить, правильно ли они ввели пароль для входа в систему, вы можете использовать любой метод шифрования для их входа, получить хешированный пароль из базы данных и сравнить их. (Также, загляните в соленые пароли )

Чтобы иметь постоянный сеанс входа в систему, вы можете использовать переменную php $ _ SESSION . или setcookie ()

0
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: