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

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

EdwardEdward, 15.01.2012 23:00

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

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

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

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

Комментарии: 7

СОЛИМ, 15.06.2012 13:47, #1

НЕТ


Edward, 26.06.2012 16:37, #2

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


Салим, 07.08.2012 14:39, #3

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


Edward, 07.08.2012 17: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>
Добавьте на Вашем сайте в вызов кнопки ВКонтакте отдельные заголовок и описание, так как это выше сделано.


Дмитрий, 17.08.2012 19: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 16:08, #6

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


Иван, 13.05.2015 20:01, #7

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


Добавить комментарий

arrow_upward