Должен ли я использовать «идентификатор» или «уникальное имя пользователя»? - PullRequest
4 голосов
/ 26 марта 2009

Я использую PHP, AS3 и mysql.

У меня есть веб-сайт. Flash (as3) веб-сайт. Флэш-сайт хранит информацию о членах в базе данных MySQL через php. В таблице «members» у меня есть «id» в качестве первичного ключа и «username» в качестве уникального поля.

Теперь моя ситуация такова: Когда флэш хочет отобразить профиль участника. Мои вопросы:

  1. Должен ли Flash передавать элемент "ID" или "имя пользователя" php для обработки запроса mysql?

  2. Есть ли какие-либо отличия, передающие "id" или "username"?

  3. Какой из них более безопасен?

  4. Какой вы порекомендуете?

Я бы хотел оптимизировать свой сайт с точки зрения безопасности и производительности.

Ответы [ 4 ]

7 голосов
/ 26 марта 2009

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

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

7 голосов
/ 26 марта 2009

1) Не вызывает сомнений и то, что должен делать.

2) Идентификатор, вероятно, короче, и его поиск намного быстрее. Идентификатор дает немного больше информации о вашей системе; если вы знаете, что сайт вообще использует серийные идентификаторы, и вы знаете, что это за один из них, это почти так же хорошо, как знать их все, тогда как знание одного имени пользователя не говорит вам имена других пользователей. С другой стороны, имя пользователя больше соответствует психологии пользователя и может служить подсказкой для пароля.

3) Оба имеют крайне незначительные падения, как описано в пункте 2.

4) Я бы использовал ID.

2 голосов
/ 26 марта 2009

Аргументы для передачи идентификационного номера:

  • Люди никогда не меняют свой идентификатор. Люди меняют свои имена. Для сайта казуальных игр с одноразовыми учетными записями это может не быть проблемой, но для долгосрочных зарегистрированных пользователей это может быть. Мне пришлось справиться с требованием расстроенной женщины очистить фамилию ее бывшего мужа от ее имени пользователя. Процесс для этого должен был быть быстро установлен!

  • Более короткий

  • Проще индексировать и разбивать.

Аргументы для передачи имени пользователя:

  • Немного сложнее (но не невозможно) угадать легальную существующую учетную запись - например, просматривать записи случайных людей, если это ваша вещь.
1 голос
/ 26 марта 2009

Вероятно, вы должны быть близко знакомы с "PHP-сессиями", возможно, используя платформу, которая уже имеет это на месте, потому что она нетривиальна, и вы не хотите испортить это. Программное обеспечение для управления сеансами будет обрабатывать все это для вас, включая экраны входа в систему, «Я забыл свой пароль» и т. Д.

Тогда вы можете сосредоточить свое внимание на том, для чего ваш сайт действительно предназначен в первую очередь.

Звучит как веселье (actionscript + php + mysql) - удачи!

...