запретить браузеру Internet Explorer 6.0 открывать сайт? - PullRequest
1 голос
/ 28 февраля 2011

Я занимаюсь разработкой веб-сайта, который я хочу запретить открывать в браузере IE 6.0 по некоторым соображениям безопасности.Я знаю, что каждый браузер имеет уникальный заголовок, который отправляется при запросе веб-страницы, поэтому я могу заблокировать открытие моего веб-сайта в IE 6.0 или в любом браузере, используя javascript, php или что-нибудь еще? *

Ответы [ 9 ]

4 голосов
/ 28 февраля 2011

Для IE это просто, потому что Microsoft добавила специальные теги, которые вы можете определить, какая версия IE.Это гораздо надежнее, чем пытаться использовать заголовок User-Agent.Нечто подобное должно работать (в заголовке вашего HTML)

<!--[if lte IE 6]>
<meta http-equiv="refresh" content="0;url=http://yoursite.com/ie6_is_a_steaming_pile.html">
<[endif]-->

Очевидно, заменить ссылку на ваш собственный сайт и, возможно, что-то более тактичное; -)

4 голосов
/ 28 февраля 2011
<!--[if (gt IE 6)|!(IE)]><!--> <html> Entire website? </html> <!--<![endif]-->

Серьезно, вы можете использовать условные комментарии IE à la HTML5 Boilerplate :

<!doctype html>  
<!--[if lt IE 7 ]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en-us" class="no-js ie9"> <![endif]-->   
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >
  <meta charset="utf-8">
  ...
3 голосов
/ 28 февраля 2011

вы можете использовать условные комментарии, подобные этому.

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

немодифицированная версия Internet Explorer 6 запустит этот код, другой браузер - нет.однако я не знаю, удовлетворяет ли это вашей заботе о безопасности.все может быть подделано.

Вы также можете проверить информацию заголовка, но это та же проблема ...

пожалуйста, расскажите нам больше о том, что вы пытаетесь сделать здесь

2 голосов
/ 28 февраля 2011

Несколько простых PHP, которые вы можете включить на каждой странице, чтобы поймать пользователей MSIE:

if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT'])){
   die('Your browser is not allowed');
}

Есть много других более сложных и всеобъемлющих способов, с помощью которых вы можете сделать это.

1 голос
/ 28 февраля 2011

Обновите И преподайте им урок одновременно:

http://ie6update.com/

Хорошо, так что это не блокирует их полностью.Но это может обмануть некоторых из них от избавления от зла, известного как IE6.Черт, Microsoft!

1 голос
/ 28 февраля 2011

Если вы действительно хотите это сделать ...

В PHP:

if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE 6")) {
  // exit or redirect or whatever...

  exit();
}
1 голос
/ 28 февраля 2011

Конечно, отметьте это (метод CGI, метод PHP, метод JS) PHP:

    <?php
   if (eregi("MSIE",getenv("HTTP_USER_AGENT")) ||
       eregi("Internet Explorer",getenv("HTTP_USER_AGENT"))) {
    Header("Location: http://www.domain.com/ie_reject.html");
    exit;
   }
?>

JS:

<!--
if (navigator.appName == "Microsoft Internet Explorer") {
        document.location = "http://www.domain.com/ie_reject.shtml"; 
} else { 
        document.location = "http://www.domain.com/realhomepage.html";
}
// -->
0 голосов
/ 28 февраля 2011

Я бы сказал: делай правильно! Создайте для него класс, отследите все USER_AGENTS всех браузеров и устройств, создайте их базу данных и интегрируйте в свою рабочую программу Session. Каждый раз, когда приходит пользователь, определяйте информацию его агента пользователя [тип, имя и версию], а затем передайте данные в ваши процедуры отображения, которые должны определить, какой контент и шаблоны дизайна нужно распечатать. Таким образом, вы можете создать веб-сайт, который будет оптимизирован для SEO, удобен для пользователя, аккуратен и прост в организации [= для разработчиков] - ВСЕ В ОДНОМ, что ОЧЕНЬ РЕДКО, на что можно наткнуться в современном Интернете ... Так что делай правильно!

0 голосов
/ 28 февраля 2011

Реальный ответ: ты не можешь.Определенный UA в заголовке слишком легко подделать, чтобы использовать его по соображениям безопасности, и если кто-то хочет использовать IE6 в приложении, которое не позволяет этого, можно использовать простой прокси-сервер, чтобы заставить это сделать, заставляя приложение думатьчто это IE8.

Тем не менее, вы можете легко сделать это в PHP, используя функцию get_browser.

См. http://php.net/get_browser

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