2009-07-07 3 views
7

Часть нашего сайта защищена защитой паролем типа .htaccess. Когда вы пытаетесь получить доступ к этой области веб-сайта, в веб-браузере появляется диалоговое окно с запросом имени пользователя и пароля.Как запрограммировать доступ к защищенному паролем веб-сайту?

Мне нужно получить доступ к этому программно (например, с помощью вызова ajax). Как сервер сообщает мне, что ему нужен пароль, и как его можно отправить?

ответ

3

В общем, http://user:[email protected]

Но есть некоторые очевидные недостатки безопасности с этим.

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

Сделайте сообщение AJAX сценарию, который проверяет подлинность. В случае проверки подлинности используйте CURL для получения результатов с использованием заранее определенной авторизированной учетной записи.

Это позволяет повторно использовать базовое apache auth, но не позволяет записывать пароли в DOM.

+0

Этот вопрос относится к https, который, как я полагаю, уменьшит проблемы безопасности. Является ли URL, переданный на сервер зашифрованным в сеансе https - я предполагаю, что это ...? –

+1

еще лучше http: // user: [email protected] – KevinDTimm

+0

URL-адрес должен быть безопасным, но вы все равно записываете права пользователя/пароль прямо на обычном сайте как часть href. Даже если u/p не может быть доставлен снайпером в пути, там все еще есть некоторые проблемы. – rooskie

2

это, конечно, не АЯКС, но с Wget клиента вы можете использовать --http-пользователя и пароль --http-флаги

4

JQuery поддерживает аутентификацию HTTP с помощью метода() их AJAX. Нечто подобное должно работать:

jQuery.ajax({ 
    type: "GET", 
    url: "foo.php", 
    username: "foo", 
    password: "bar" 
}); 

Документация по всем вариантам jQuery.ajax() можно найти здесь: http://docs.jquery.com/Ajax/jQuery.ajax#options

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