Проблемы безопасности относительно имени пользователя / пароля против секретного URL - PullRequest
4 голосов
/ 28 сентября 2011

У меня простой сайт с формой регистрации. В настоящее время пользователь может дополнить свою регистрацию (некритической, «низкой безопасностью») информацией, недоступной на момент регистрации, через личный (секретный) URL.

Т.е., когда они нажимают кнопку "Отправить", они получают сообщение вроде:

Спасибо за регистрацию. Вы можете дополнить свою регистрацию, добавив информацию через личный URL:

http://www.example.com/extra_info/cwm8iue2gi

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

Мой вопрос: Есть ли какие-либо проблемы безопасности с использованием секретного URL-адреса вместо полной системы имени пользователя / пароля?

Единственная проблема, с которой я могу столкнуться - это то, что URL хранятся в истории браузера. Это меня не сильно беспокоит. Я что-то упустил?

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

Ответы [ 6 ]

2 голосов
/ 28 сентября 2011

Другая потенциальная проблема связана с самими пользователями. Большинство людей понимают, что пароль - это то, что они должны пытаться защитить. Однако сколько пользователей, вероятно, признают, что им следует предпринять какие-то усилия для защиты вашего секретного URL?

2 голосов
/ 28 сентября 2011

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

Кстати, еще одна проблема с этой схемой, если вы отправляете URL-адрес пользователю по электронной почте. Это открывает еще несколько возможностей для атаки.

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

1 голос
/ 28 сентября 2011

Проблема здесь в том, что, хотя трудно угадать URL для какого-либо конкретного пользователя, при достаточном количестве пользователей относительно легко угадать правильный URL для НЕКОТОРОГО пользователя.

Это будет классический пример атака на день рождения .

ETA: пропущена часть, касающаяся размера секрета, так что это на самом деле не применимо в вашем случае, но оставит здесь ответ, поскольку может применяться вболее общий случай.

0 голосов
/ 28 сентября 2011

Секретный URL ничего не значит, если вы не используете SSL.Если конечный пользователь все еще передает свою идентификационную информацию в открытом виде через Интернет, то не имеет значения, как вы его пропускаете: они все еще открыты.

0 голосов
/ 28 сентября 2011

может дополнить свою регистрацию (некритической, «низкой безопасностью») информацией

Трудно представить, что предоставляемая пользователем информация на самом деле является "низкой безопасностью"; даже если вы запрашиваете пароль и имя пользователя у ваших клиентов, вы потенциально нарушаете обязанность позаботиться о них; большое количество пользователей будет использовать одно имя пользователя / пароль на нескольких сайтах. Любая информация о ваших пользователях и потенциально много информации о транзакциях могут быть использованы третьей стороной для компрометации личности этого пользователя.

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

Ваша идея использовать секретный URL-адрес означает, что только вы, пользователь, любой пользователь в той же сети, что и пользователь, находится рядом с пользователем по Wi-Fi, подключенным к любой сети между вами и пользователем, или кем доступ к оборудованию пользователей будет знать URL. Конечно, это не рассматривает возможность того, что кто-то попробует атаку грубой силой против URL.

С

0 голосов
/ 28 сентября 2011

«Секретный URL» часто называют безопасностью по неизвестности. Проблема в том, что очень просто написать скрипт, который попытается использовать различные комбинации букв, символов и цифр, чтобы грубой силой взломать эту схему.

Таким образом, если хранится какая-либо конфиденциальная информация, вам обязательно следует использовать хотя бы имя пользователя и пароль для ее защиты.

...