Поддержание защищенной базы данных пользовательских логинов и информации? - PullRequest
0 голосов
/ 25 июля 2010

Я хочу иметь форму входа на благотворительном веб-сайте, который я создаю (это для друга, и я учусь на ходу), и я хочу знать, какие языки / программное обеспечение я должен изучить, чтобы создавать базы данных для пользователя логины и информация? Примечание: он ДОЛЖЕН быть безопасным и относительно простым в освоении для человека с небольшим опытом программирования.

Обновление: я понимаю, что CMS предлагают хорошие инструменты для входа в систему и т. Д., Но я хочу сделать все это самостоятельно.

1 Ответ

5 голосов
/ 25 июля 2010

Самое простое, что вы можете сделать, - это хешировать и применять соль к вашим паролям, прежде чем вводить их в базу данных. У "Злой Блохи" есть довольно хороший ответ на другой вопрос здесь .

Задумывались ли вы о получении готовой CMS? Большинство приличных CMS должны содержать все функции, необходимые для простого благотворительного сайта. Это также даст вам надежное решение проблемы с вашей формой входа.

EDIT

Что за язык использовать. Это действительно не очень важно, если вы чувствуете себя комфортно и готовы тратить время и силы. В вашем профиле показано, что вы ищете для изучения PHP. Похоже, написание формы входа в PHP было бы хорошей отправной точкой. Что касается базы данных. Опять же, это не имеет значения. Просто, пожалуйста, просто не используйте MS Access. Большинство разработчиков PHP (предположительно), похоже, используют MySQL, поскольку обычно это то, что входит в состав веб-хостинга PHP.

Про безопасность, хэширование и добавление соли в ваш пароль - это самое простое, что вы можете сделать. Вы могли бы сделать что-то вроде этого:

  • Пользователь нажимает ссылку регистрации
  • Вывести форму регистрации с использованием SSL
  • Как только пользователь нажимает кнопку отправки
  • Хэш-пароль. Добавьте соль. Хранить в базе данных. Добавление соли к вашему хешированному паролю не позволит атакованным использовать радужную таблицу для грубого взлома ваших паролей. Посмотрите здесь для функций, которые заботятся о хешировании паролей.
  • Вы также можете заставить пользователей создать пароль с определенными правилами. Например, требуется, чтобы все пароли были длиннее 6 символов, хотя бы одно число и т. Д. *

Как только пользователь должен войти в систему, вы можете сделать что-то похожее на:

  • Получить имя пользователя и продезинфицировать его. Помните, что НИКОГДА не доверяйте вводу пользователя. Не имеет значения, хочет ли сам Бог иметь учетную запись на вашем сайте.
  • Сбросьте пароль, чтобы люди, не имеющие учетной записи, получили доступ через SQL-инъекцию . Это можно сделать с помощью функции PHP mysql_real_escape_string .
  • Как только все будет готово, вы можете запросить базу данных, чтобы узнать, есть ли какие-либо возвращенные строки.

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

Честно говоря, ваш лучший выбор, вероятно, состоит в том, чтобы завершить эту задачу и отправить обратно (новый вопрос) на SO с вашим кодом. Оттуда мы можем проанализировать это и взять оттуда.

Что-то в этом духе должно соответствовать вашим требованиям.

...