Могу ли я аутентифицировать страницу iFrame с родительской страницы? - PullRequest
4 голосов
/ 12 ноября 2010

У меня есть простая HTML-страница, которая вращается через несколько страниц статуса, которые я показываю на нескольких телевизорах вокруг кампуса. Я регулярно обновляю страницу и ссылки. Много раз страницы требуют аутентификации. Это боль от удаленного терминала, чтобы предоставить учетные данные. Некоторые из них - HTTP-аутентификация, а некоторые - аутентификация на основе <form>, запеченная на сайте. Много раз я могу обойти аутентификацию на основе <form> с помощью HTML и JavaScript, которые публикуют правильные учетные данные.

  1. Есть ли лучший способ обойти <form> аутентификация на основе со страницы хоста? (Ниже)

  2. Есть ли способ обойти Проверка подлинности на основе сервера / HTTP со страницы хоста без необходимости проверять подлинность вручную отображение

Под <form> аутентификацией я имею в виду, что действие <form> генерирует файл cookie сеанса?
(mikerobi, спасибо за комментарий)

Вот код для страницы хоста

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> 
  Important Stuff 
</title>
    <script src="/scripts/jquery.js" type="text/javascript"></script>
    <style type="text/css">
        html, body, iframe { margin:0; height:100%; }
        iframe { display:block; width:100%; border:none; }
    </style>
    <script type="text/javascript">
        var link = new Array();        
        link[0] = "http://mycompany.intranet/";        
        link[1] = "http://mycompany.intranet/weather.htm";        
        link[2] = "http://mycompany.intranet/systemstatus/";        
        var linkIndex = 0;
        setInterval("doSomething()", 10000);

        function doSomething() {

            if (linkIndex >= link.length)
            {
                // reload in case the page has been updated
                window.location.reload();
            }

            $("#frame").attr("src", link[linkIndex]);
            linkIndex++;
        }
    </script>
</head>
<body>
    <iframe id="frame" src="http://mycompany.intranet/"></iframe>
</body>
</html>

1 Ответ

8 голосов
/ 12 ноября 2010
  1. Я не вижу ваш код, который отправляет учетные данные для входа в систему на основе POST, но если вы используете JavaScript для автоматической отправки формы (используя метод .submit()), это, вероятно,лучший способ.Помните, что атрибут target формы HTML позволяет вам отправлять форму в другом окне (или, в вашем случае, в iframe) - просто присвойте атрибуту name="xyz" iframe и используйте target="xyz" для формы,Форма будет расположена на главной странице и может быть скрыта с помощью CSS display: none.

  2. . Вы можете включить имя пользователя и пароль HTTP Basic Auth в URL, например: http://username:password@www.example.com/path.Обратите внимание, что современные веб-браузеры могут не разрешать это в своих конфигурациях по умолчанию в качестве защиты от конкретной технологии фишинга, и вам может потребоваться изменить конфигурацию , отредактировав реестр Windows или другие места, где хранятся настройки веб-браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...