1

Тема: Окно авторизации домашних роутеров

Даже сформулировать свой вопрос толком не могу. При входе на WiFi роутеры до загрузки страницы выскакивает окошко авторизации:

Безопасность Windows

iexplore
The server 192.168.1.1 is asking for your user name and password.
The server reports that it is from KEENETIC LITE.

[Пользователь]
[Пароль]
[v] Запомнить учетные данные

[OK][Отмена]

по крайней мере, на 8.1 так. На виндах постарше окошко, кажется, называлось "Connect to ..." или что-то вроде этого.
Вопросов, собственно, два:
1. Как вызывается это окно? И можно ли его вызвать из странички на html+js? Или это запрос сервера, который происходит до начала загрузки страницы?
2. Как перехватить ввод логина/пароля из локального скрипта (для автозаполнения)? Автозаполнение в браузерах на этих устройствах работает, значит, полагаю, в принципе это возможно. С точки зрения автозаполнения поля называются _SYSC_$UserName$ и _SYSC_$Password$, а вот какому объекту они принадлежат - не въехал.

2

Re: Окно авторизации домашних роутеров

это базовая авторизация - отправить в гет запросе

Я конечно далек от мысли... (с)

3 (изменено: Serge Yolkin, 2013-09-05 01:07:51)

Re: Окно авторизации домашних роутеров

smaharbA, спасибо за э-э-э... импульс в правильном направлении. Правда, авторизация, похоже, не базовая, если слово "Digest" я понял правильно:

Authorization: Digest username="admin",realm="KEENETIC LITE",nonce="5c9bccb324ac335e76410ed8e0ec9bd9",uri="/",cnonce="69567adbef0ccbe235f245ff705c5c10",nc=00000001,algorithm=MD5,response="e10777068a9b59df657a1c7d792b73ae",qop="auth",opaque="5ccc069c403ebaf9f0171e9517f40e41"

но теперь знаю, куда копать.

4

Re: Окно авторизации домашних роутеров

Дошел до очередного тупика. Из чистого скрипта, вроде, получается. Попробовал написать простенький .hta, и наткнулся на проблему: объект WinHttp.WinHttpRequest.5.1 сам по себе к роутеру логинится, а вот как открыть страничку, на которую он залогинился, я не знаю.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=8" />
  <title>Router</title>
  <hta:application
   applicationName="Router-IXa"
   id="HTApp"
   innerBorder="no"
   navigable="yes"
   singleInstance="yes"
   version="0.2"
   />
</head>
<body></body>
<script type="text/jscript" language="JScript">
  var
   a={url:'http://192.168.1.1/',userName:'admin',password:'1234'},
   f=new ActiveXObject('Scripting.FileSystemObject'),
   h=new ActiveXObject('WinHttp.WinHttpRequest.5.1');

//  alert(self.location);
//  window.close();

  // получаем запрос сервера
  h.open('GET',a.url,false);
  h.send();

  // логинимся
  h.open('GET',a.url,false);
  h.setCredentials(a.userName,a.password,0);
  h.send();

/*  // для проверки
  c=h.responseText;

  with(f.openTextFile('zyxel.htm',2,true)){
    write(c);
    close();
  }
*/

  // что делать дальше???

//  self.location=a.url;
//  снова запрашивает авторизацию
//  window.open(…);
//  такая же ботва
//  document.createElement('IFRAME')…
//  такая же ботва
//  document.write(h.responseText);
//  не работает
//  document.getElementsByTagName('BODY')[0].innerHTML=h.responseText;
//  ломает относительные пути

</script>
</html>