2012-01-09 6 views
0

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

Я реализовал простой механизм, благодаря которому я могу ввести пароль пользователя (отправленный как параметр post/get) и сохранить его в базе данных. После успешного входа в систему я возвращаю идентификатор пользователя (PK в базе данных) обратно клиенту. Последующие запросы должны иметь идентификатор пользователя, который используется как примитивный механизм для проверки запросов.

Я читал о нескольких механизмах, начиная с простой HTTP-аутентификации, используя соленый хеш (который я использую), реализуя токены доступа к, казалось бы, сложной аутентификации OAuth. Ах! и, возможно, наконец, около https.

Оставляя в стороне последние два, о которых я все еще достаточно понимаю, у меня, похоже, есть очень простой вопрос, на который я не смог найти ответ.

Прошу прощения, это не вопрос прямого программирования, но причина, по которой я спрашиваю, я не могу найти ответ на Google или, вернее, не использую правильные ключевые слова для поиска.

Вопрос, учитывая все механизмы токенов доступа и ключей api и т. Д., Даже если бы я должен был реализовать этот механизм, но не использовать https, есть ли какой-либо смысл в их реализации? Я имею в виду, что кто-то может понюхать мой ясный текстовый пароль или идентификатор пользователя, он также сможет заглянуть в маркер/ключ и использовать его впоследствии со злым умыслом, тем самым делая весь механизм бесполезным. Означает ли это, что https является единственным действительно безопасным вариантом?

Мне, должно быть, что-то не хватает, но указатели будут очень благодарны.

ответ

1

Значит ли это протокол HTTPS является единственным по-настоящему безопасным вариантом

Нет, нет ни одного «безопасного» варианта, а ряд смягчающих вы реализуете для снижения риска в различных точках приложения. HTTPS делает 3 отличные вещи:

  1. Он обеспечивает гарантию личности веб-сайта (проверка сайта).
  2. Он обеспечивает гарантию того, что содержимое не было обработано в транзит (целостность данных).
  3. Он обеспечивает гарантию того, что подслушивание не произошло при переходе (конфиденциальность данных).

Если вы не используете HTTPS, все другие методы безопасности, о которых вы говорите, могут быть легко бесполезны, если злоумышленник просматривает или манипулирует текстовыми пакетами. Взгляните на мой пост на Insufficient Transport Layer Protection, чтобы увидеть, что это означает на практике.

+0

Это сообщение потрясающее чтение. Я новичок в области безопасности, поэтому более поздние части перешли сверху. Есть ли источник, который вы порекомендуете, чтобы сначала получить все основные. Я имею в виду, что на сайтах, которые занимаются предметом, есть тонны, но никто не знает, с чего начать. –

+0

Спасибо :) Если вас интересует безопасность, начните читать часть 1 в моей серии и идите оттуда. Если это общая технология, задайте здесь много вопросов, прочитайте много книг и т. Д. –

0

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

Смежные вопросы