Сначала немного истерики тЁзка-like style:
…криворукие ебалаи!…асы из СУПа…чтоб вас распи…ваши визитки – гав…таких кретинских иллюстраций еще поискать…вы ничего не понимаете в программи…чудовищно унылая х…так верстают только му…хочется вырвать глаза и блева…
Закончили истерику и прекратили выставлять себя толпе на посмешище для набора очков дешевой популярности, мы же не дизайнеры какие, мы - программисты. Так что по делу.
Вчера в СУПе прикрыли лавочку с публикацией кнопочек Like из Facebook и Tweet из Twitter в Живой Журнал при помощи обходных маневров, открытых мною месяц назад.
Просто обрубили вставку тега <OBJECT> с параметром DATA в записи и баста. Таким образом старые кнопочки, помещенные в посты раньше, продолжают работать, а вот при публикации новых парсер вырезает теги <OBJECT> с параметром DATA, и подменяет их своими, которые полностью убивают работоспособность данных кнопок.
Решение СУП-а понятно и возможно даже оправдано. Все-таки такой полу-хак с подменой функциональности тега <IFRAME> штука потенциально небезопасная. Теоретически (теоретически!) можно представить себе ситуацию, когда злоумышленник подгружает в IFRAME стороннюю страницу с вредоносным кодом, а пользователь ничего не может поделать, ибо над страницей в IFRAME не властен.
Можно было бы, конечно, ограничить доступ IFRAME-а (а точнее его замены в виде OBJECT) только страницами facebook и twitter, или еще что-нибудь в этом роде, варианты есть, но в СУП-е решили не париться, и отрубить лихую голову на корню.
Вообще удивительное рядом, но оно запрещено – неофициальный слоган Живого Журнала, если кто не знал. Возможности HTML тут урезаны до критического минимума, никаких тебе JavaScript, IFRAME, SSI-include, никаких посторонних вкусностей. Идея понятна – чтобы враги не залезли и ничего не поломали.
Но ведь второе десятилетие 21го века пошло, HTML5 на носу, надо как-то двигаться вперед, не считаете?
Что можно сделать в данном случае?
Решение настолько простое, что можно сказать – абсолютно тупое.
Тупо не задумываясь меняем в коде кнопки слова OBJECT на EMBED (обратите внимание, это нужно сделать ДВА раза, при открытии тега, и при его закрытии), а слово data на src, и все снова работает!
Т.е. до этого для Like мы имели:
<comment>
<object data=”http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m” type="text/html" width="450" height="100">
</object>
</comment>
а получили:
<comment>
<embed src="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m" type="text/html" width="450" height="100">
</embed>
</comment>
То же самое для кнопки Tweet, было:
<comment>
<object width="130" height="60" type="text/html" style="width: 130px" data="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</object>
</comment>
стало:
<comment>
<embed width="130" height="60" type="text/html" style="width: 130px" src="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</embed>
</comment>
Обращаю ваше внимание, что это не решение проблемы, а лишь временная заплатка на полу-легальный хак. Вне всякого сомнения через пару недель (если не дней) администрация прикроет и ее. Да, это намек – налетай, торопись, ставь кнопки, пока есть такая возможность, не ленись! :)
Хочется лишь надеятся, чтокриворукие ебалаи дальновидные программисты из СУПа бросят свою вредную привычку законопатчивать дыры паклей и выплескивать ребенка вместе с грязной водой, а поймут, что если в бизнесе существует потребительская потребность, ее нужно удовлетворять, а не делать вид, что меньше знаешь, крепче спишь, и чем меньше потребностей, тем меньше проблем и забот у кодеров на зарплате.
Не забываем так же, что данный финт с подменой тега IFRAME на теги OJBECT или EMBED работает во всех нормальных браузерах и не работает(!) в Internet Explorer-е, даже последней 9-й версии, а значит 90% потенциально вредоносного кода уже отсечено само собой одним только фактом не использования IE при работе с Живым Журналом.
А теперь, попросив прощения у читателей (я ведь обещал больше не пользоваться этими кнопками у себя в журнале, но для теста придется это сделать еще один, надеюсь последний раз) сами блескучие, сияющие, недосиськи и почти-что забавные котеги, притягивающие взгляд и курсор мышки, кнопочки:
UPD: Не забываем, кнопочки поставлены для тестирования - если видите какие-то глюки, отпишитесь в комментарии, пожалуйста. Так, на первый взгляд Opera и Google Chrome работают, а вот FireFox чего-то нет.
Продолжаем копаться в коде...
UPD2: Кто бы мог подумать на FireFox, клевый же браузер. Ну ладно IE, но Firefox...
Вот временное решение, которое НЕ работает ни в IE, ни в Firefox-e, но зато работает в Опере, Хроме и Сафари, и при этом НЕ выбрасывает никакие сообщения о неправильно установленных плагинах, т.е. пользователи IE и FireFox вообще ничего не увидят, никаких сообщений об ошибках.
<comment>
<object type="text/html" width="450" height="100">
<param name="url" value="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com/403214.html&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m">
</object>
</comment>
Для Twitter-а в value= вставляем твиттерную строку из кода выше.
…криворукие ебалаи!…асы из СУПа…чтоб вас распи…ваши визитки – гав…таких кретинских иллюстраций еще поискать…вы ничего не понимаете в программи…чудовищно унылая х…так верстают только му…хочется вырвать глаза и блева…
Закончили истерику и прекратили выставлять себя толпе на посмешище для набора очков дешевой популярности, мы же не дизайнеры какие, мы - программисты. Так что по делу.
Вчера в СУПе прикрыли лавочку с публикацией кнопочек Like из Facebook и Tweet из Twitter в Живой Журнал при помощи обходных маневров, открытых мною месяц назад.
Просто обрубили вставку тега <OBJECT> с параметром DATA в записи и баста. Таким образом старые кнопочки, помещенные в посты раньше, продолжают работать, а вот при публикации новых парсер вырезает теги <OBJECT> с параметром DATA, и подменяет их своими, которые полностью убивают работоспособность данных кнопок.
Решение СУП-а понятно и возможно даже оправдано. Все-таки такой полу-хак с подменой функциональности тега <IFRAME> штука потенциально небезопасная. Теоретически (теоретически!) можно представить себе ситуацию, когда злоумышленник подгружает в IFRAME стороннюю страницу с вредоносным кодом, а пользователь ничего не может поделать, ибо над страницей в IFRAME не властен.
Можно было бы, конечно, ограничить доступ IFRAME-а (а точнее его замены в виде OBJECT) только страницами facebook и twitter, или еще что-нибудь в этом роде, варианты есть, но в СУП-е решили не париться, и отрубить лихую голову на корню.
Вообще удивительное рядом, но оно запрещено – неофициальный слоган Живого Журнала, если кто не знал. Возможности HTML тут урезаны до критического минимума, никаких тебе JavaScript, IFRAME, SSI-include, никаких посторонних вкусностей. Идея понятна – чтобы враги не залезли и ничего не поломали.
Но ведь второе десятилетие 21го века пошло, HTML5 на носу, надо как-то двигаться вперед, не считаете?
Что можно сделать в данном случае?
Решение настолько простое, что можно сказать – абсолютно тупое.
Тупо не задумываясь меняем в коде кнопки слова OBJECT на EMBED (обратите внимание, это нужно сделать ДВА раза, при открытии тега, и при его закрытии), а слово data на src, и все снова работает!
Т.е. до этого для Like мы имели:
<comment>
<object data=”http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m” type="text/html" width="450" height="100">
</object>
</comment>
а получили:
<comment>
<embed src="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m" type="text/html" width="450" height="100">
</embed>
</comment>
То же самое для кнопки Tweet, было:
<comment>
<object width="130" height="60" type="text/html" style="width: 130px" data="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</object>
</comment>
стало:
<comment>
<embed width="130" height="60" type="text/html" style="width: 130px" src="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</embed>
</comment>
Обращаю ваше внимание, что это не решение проблемы, а лишь временная заплатка на полу-легальный хак. Вне всякого сомнения через пару недель (если не дней) администрация прикроет и ее. Да, это намек – налетай, торопись, ставь кнопки, пока есть такая возможность, не ленись! :)
Хочется лишь надеятся, что
Не забываем так же, что данный финт с подменой тега IFRAME на теги OJBECT или EMBED работает во всех нормальных браузерах и не работает(!) в Internet Explorer-е, даже последней 9-й версии, а значит 90% потенциально вредоносного кода уже отсечено само собой одним только фактом не использования IE при работе с Живым Журналом.
А теперь, попросив прощения у читателей (я ведь обещал больше не пользоваться этими кнопками у себя в журнале, но для теста придется это сделать еще один, надеюсь последний раз) сами блескучие, сияющие, недосиськи и почти-что забавные котеги, притягивающие взгляд и курсор мышки, кнопочки:
UPD: Не забываем, кнопочки поставлены для тестирования - если видите какие-то глюки, отпишитесь в комментарии, пожалуйста. Так, на первый взгляд Opera и Google Chrome работают, а вот FireFox чего-то нет.
Продолжаем копаться в коде...
UPD2: Кто бы мог подумать на FireFox, клевый же браузер. Ну ладно IE, но Firefox...
Вот временное решение, которое НЕ работает ни в IE, ни в Firefox-e, но зато работает в Опере, Хроме и Сафари, и при этом НЕ выбрасывает никакие сообщения о неправильно установленных плагинах, т.е. пользователи IE и FireFox вообще ничего не увидят, никаких сообщений об ошибках.
<comment>
<object type="text/html" width="450" height="100">
<param name="url" value="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com/403214.html&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m">
</object>
</comment>
Для Twitter-а в value= вставляем твиттерную строку из кода выше.