Можете ли вы передать пользователь / пароль для базовой проверки подлинности HTTP в параметрах URL?

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

Я попробовал http://myserver.com/~user=username&password=mypassword , но он не работает.

Можете ли вы подтвердить, что на самом деле невозможно передать пользователю /пройти через параметры HTTP (GET или POST)?

112 голосов | спросил ripper234 21 MarpmWed, 21 Mar 2012 15:16:58 +04002012-03-21T15:16:58+04:0003 2012, 15:16:58

4 ответа


155

Невозможно передать имя пользователя и пароль через параметры запроса в стандартном HTTP-аутентификации. Вместо этого вы используете специальный формат URL, например: http: //имя пользователя: пароль@example.com/ - это отправляет учетные данные в стандартный HTTP-заголовок «Авторизация».

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

ответил womble 21 MarpmWed, 21 Mar 2012 15:38:35 +04002012-03-21T15:38:35+04:0003 2012, 15:38:35
15

http: //имя пользователя: пароль@example.com будет работать для FireFox, Chrome, Safari, но не для IE.

ответил Girish Kumar 23 Jpm1000000pmWed, 23 Jan 2013 14:50:04 +040013 2013, 14:50:04

14

Передача основных параметров проверки подлинности в URL не рекомендуется

Для этого есть поле заголовка авторизации, чтобы проверить его здесь: список заголовков http

Как его использовать: Основная аутентификация доступа

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

Прочтите также главу 4.1 в RFC 2617 - HTTP-аутентификацию для получения более подробной информации о том, почему NOT для использования базовой проверки подлинности.


Передача параметров аутентификации в строке запроса

При использовании OAuth или других служб проверки подлинности вы часто можете также отправлять токен доступа в строку запроса вместо заголовка авторизации, поэтому что-то вроде:

  GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD
 
ответил Wilt 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 24 Sep 2013 11:55:06 +0400 2013, 11:55:06
0

Можно (по-видимому) отправить любую строку в параметры GET, хотя не рекомендуется отправлять логин и пароль, что может сделать ее очень заметной, особенно если она не находится в запросе AJAX.

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

ответил Steve Smith 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 11 Sep 2015 11:22:36 +0300 2015, 11:22:36

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132