IE9 блокирует виджет "Мне нравится" от социальной сети "В контакте"

Бдительный антисоциальный XSS фильтр Internet Explorer 8, 9
Admin    16-01-2012

При открытии страницы сайта с виджетом "Мне нравится" социальной сети "В контакте" Internet Explorer версии 8 и 9 отказывается отображать кнопку с сообщением:

Браузером Интернет Эксплорер эта страница изменена для предотвращения запуска скриптов между сайтами.

Причина заключается в блокировании XSS фильтром Internet Explorer параметров виджета "pageTitle" и "pageDescription" имеющих в своем значении кавычки. Конечно же имеются ввиду html-сущности кавычек, например, получаемые при обработке строки php функцией htmlspecialchars.
По умолчанию эти значения берутся скриптом виджета из тегов <title> и <meta name="description"> текущей страницы.

Решение очевидно в вырезании кавычек из title и description текущей страницы, либо в передаче этих значений отдельно, без кавычек, в параметрах виджета.

Комментарии: 7
 
  • СОЛИМ
    СОЛИМ · 15-06-2012 20:47 · 1

    НЕТ

  • Admin
    Admin · 26-06-2012 23:37 · 2

    Ваш случай может быть другой, на каком сайте получаете этот отлуп? Сложно говорить об этом не видя картины.

  • Салим
    Салим · 07-08-2012 21:39 · 3

    Устанавливал виджеты, у нас на этом http://balticdom.ru сайте тоже блокирует.

  • Admin
    Admin · 08-08-2012 00:44 · 4

    Салим, попробуйте убрать из тега description обратные слеши: \\\\\\
    У нас для соцсетей отдаются специально вычищенные от ненужных знаков теги, как то так:

    <div class="vk"><div id="vk_like"></div></div>
    <script type="text/javascript">
    VK.Widgets.Like('vk_like', {type: 'mini', height: 20, pageTitle: 'Заголовок', pageDescription: 'Описание'});
    </script>
    Добавьте на Вашем сайте в вызов кнопки ВКонтакте отдельные заголовок и описание, так как это выше сделано.

  • Дмитрий
    Дмитрий · 18-08-2012 02:20 · 5

    У меня схожая проблема. Весь код:
    <html>
    <head>
    <script type="text/javascript" src="http://userapi.com/js/api/openapi.js?52"></script>
    </head>
    <body>
    <!-- Put this script tag to the <head> of your page -->


    <script type="text/javascript">
    VK.init({apiId: 3083424, onlyWidgets: true});
    </script>

    <!-- Put this div tag to the place, where the Like block will be -->
    <div id="vk_like"></div>
    <script type="text/javascript">
    VK.Widgets.Like("vk_like", {type: 'mini', height: 20, pageTitle: 'Заголовок', pageDescription: 'Описание'});
    </script>
    <body>
    </html>

  • Руслан
    Руслан · 14-06-2013 23:08 · 6

    Вместо openapi.js?52 впишите openapi.js?48 и будет вам счастье

  • Иван
    Иван · 14-05-2015 02:01 · 7

    Internet Explorer нужен, чтобы скачать Google Chrome.

Всего : 7, на странице: 7
Обновить

Регистр не имеет значения
Отправить
Очистить