Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Архив » Безопасный HTML в постах для произвольного юзера!


Безопасный HTML в постах для произвольного юзера!

Сообщений 1 страница 20 из 64

1

Решил сделать что-то полезное для сервиса из давно обещанного,
Есть конечно поделки и тут на mybb, но без гарантий, что один из 
кодов сломает всю страницу. Попробовал в этом проекте избежать
подобного.
ююююююююююююююююююююююююююююю

Безопасный HTML в постах для произвольного юзера

Общее описание:
Есть два вида запуска:

1. По кнопке и
2. Автоматом по мере загрузки страницы

По кнопке для произвольного юзера и в произвольном форуме,
Для автоматического запуска отводятся специально означенные форумы(Хотя, хоть все отдайте под автозапуск - Ваше право, но имхо имел опыт, когда флудили, к примеру, alert(том). А гасить кучу всплывающих окон - не Айс!

Можно выделенным никам дать полный доступ(на автозапуск)  во всех форумах, к примеру для Админов и опытных пользователях, доверенных юзеров на дизайнерских форумах и т.д..

!Для Ников нарушителей можно вообще запретить автозапуск.

Теперь кривой код в HTML (я надеюсь, что случайный), например отсутствие закрывающегося тега </div>, - не сломает страницу!



Описание Установки:
В Самое начало HTML верх ставим коды:

<script  id="HTMLinPost" type="text/javascript">
   autoUserHTMLForums = [1,4,2];  // ID форумов с доступом к автозапуску;
   Allaccess = "Deff,Лесси";  // Ники с полным доступом к автозапуску на всём форуме;
   NOaccess = "Enlil,Frejer";  // Ники без доступа к автозапуску;
   LinkFAQ = "http://forum.mybb.ru/viewtopic.php?id=34820";
if("setframeHeight"==window.name&&this.document!==top.document&&!(document.URL.indexOf("http://"+location.hostname+"/viewtopic.php?id=300000#"))){
window.top.setHeightForhtmlFrame(location.hash);$("<style>body{}</style>").appendTo("head");
$("head,body").find("link").attr("disabled",1);document.write('</div></div></div></div><div style="display:none"><plaintext>')}</script>
<script type="text/javascript" src="http://forumstatic.ru/files/0013/66/53/37983.js"></script>

Cиним, ссылка на данную тему, для вопросов от пользователей скрипта,
о которой скажу далее...


Кнопка обрамления в BB-теги исходного HTML кода, теперь спрятана в наборе кнопки => http://sa.uploads.ru/Bj2vJ.jpg,сразу за строкой "Поясняющий текст";
(Там же с краю и наша синяя ссылка, указанная последнем параметром в нашем скрипте, некоторые возможно захотят заменить её на пояснения и дополнения в теме на своём форуме!

http://sa.uploads.ru/ABzXp.jpg

По умолчанию вид обрамления BB-тегами соответствует запуску HTML с помощью кнопки

http://sa.uploads.ru/srV8C.jpg

........   Для того, чтобы выполнялся автозапуск кода нужно добавить в теги +

[quote=HTML+][code]<style type="text/css">body{background:red;}</style>[/code][/quote]

Добавлено спустя 2 месяца 14 дней 21 час 44 минуты 33 секунды:
Важно:!

PS: При перегруженности картинками на странице, может появится прокрутка во фрейме с HTML кодом, из-за раннего определения высоты фрейма раньше  полной загрузки картинок!
В качестве лекарства выставляем явную высоту HTML кода( перед самым контентом вставляемого HTML)

<style type="text/css">body{min-height:214px}</style>

Цифру 214 подбираем-проставляем для Вашего каждого конкретного кода HTML


Тут кому-то потребовалось:

Скрыть кнопку FAQ, выделена красным http://savepic.org/6979264.jpg

Cтавим в HTML в форме ответа:

<style type="text/css">
#addition-area div[onclick*="quote=HTML"] a{
display:none;
}
</style>

Отредактировано Deff (Вс, 2 Ноя 2014 15:28:11)

+2

2

Резерв..

0

3

Deff
А если давать только админам полный доступ на автозапуск, надо ли оставлять первый массив?

0

4

Поставила. Как оно работает? *Бьется головой об стену*
Теперь никакой таблицы вообще не видно, в сообщении отображается просто код:

Код:
[table layout=fixed width=70%] [tr] [td]555[/td] [td]555[/td] [/tr] [/table]

вот так выглядит при редактировании:

HTML+ написал(а):
Код:
[table layout=fixed width=70%]
[tr]
[td]555[/td]
[td]555[/td]
[/tr]
[/table]

А всего-то надо поставить таблицу по центру, и столько гемора с этим

Отредактировано Mirra Bell (Пт, 26 Дек 2014 09:02:47)

0

5

Mirra Bell
ВЫ ставите BB-коды, а это HTML в постах.
Т.е. коды таблицы такие-же как Вы ставите в объявлении

<center><table style="table-layout:fixed;width:70%">
<tr>
<td>555</td>
<td>555</td>
</tr>
</table></center>

Если совсем сложно с HTML - есть транслятор: Многие пользователи просят достаточно простые таблицы

+1

6

Deff
Спасибо, вот теперь поняла и все получается. ТОлько теперь у таблицы появляется вертикальная полоса прокрутки, как ее убрать?

0

7

Mirra Bell
Дайте ссылку на пример - клик по дате в сообщении

0

8

Deff
Да оно как-то непонятно: одна и та же таблица в одном сообщении полосу дает, в другом нет
Здесь нет, а в админке, где идут точно такие же таблицы, только с разными картинками, появляется вертикальная полоса

вот так

http://savepic.ru/6468328.jpg

0

9

Mirra Bell написал(а):

Да оно как-то непонятно: одна и та же таблица в одном сообщении полосу дает, в другом нетЗдесь нет, а в админке, где идут точно такие же таблицы, только с разными картинками, появляется вертикальная полоса

1. Ну значит создайте тестовый Админ-ник, киньте в личку- укажите ссылку на сообщение с проблемой

0

10

Deff
Отправила

0

11

Mirra Bell
Эффект получился у Вас из-за много картинок на форуме, которые медленно грузятся и скрипт определяет высоту фрейма до полной загрузки картинки (Авики и печать) из-за чего высота меньше реальной в итоге, вот и появляется прокрутка
В качестве лекарства вставляем явную высоту HTML кода( перед контентом вставляемого HTML)

<style type="text/css">body{min-height:214px}</style>

Добавил про этот эффект в Первопост


2. Ники с полным доступом пишем в скрипте без пробелов

   Allaccess = "Антоэль,Эле Олвир,Флеурис,Рильцелар";  // Ники с полным доступом к автозапуску на всём форуме;

И последнего ника Рильцелар нет в списке, поэтому не автозапускалось на указанной Вами странице, ибо у Вас нет прописанных форумов с автозапуском

0

12

Доброго времени, а как ссылку оформить? х.х А то синий совсем режет глаза.

0

13

Eldena
Поставить перед кодом свой стиль на элементы, к примеру только для ссылок

<style>
a {
  color:#F7F7F7;
}
a:hover {
  color:#00FFFF;
}
</style>

0

14

Deff
Действует только если important приписать, но в таком случае все ссылки получают этот стиль, а у нас некоторые типы ссылок (например, меню навигации и пользовательские) отличаются по цвету от обычных. Как быть?  :'(

0

15

Eldena
Вы не на форум ставьте!
А прямо в Ваш текущий код вставки HTML

мон заранее заготовить свой стиль вписать в текстовый файл с расширением css, залить в админку и ставить перед кодом html

<link rel="stylesheet" type="text/css" href="Ваш стиль для HTML.css" />

Суть в том что во фрейме чистая страница HTML без всяких стилей

0

16

Deff
совсем в HTML не разбираюсь(

Попробовала сделать все как Вы написали, но эффекта никакого  :'(

0

17

Eldena
Вот вы ставите код

фывфывфыв
<a href="http://forum.mybb.ru/profile.php?id=26823" rel="nofollow">
Профиль
</a>
Бла-Бла-бла

Впереди него ставите:

<style>a {color:#F7F7F7;}a:hover {color:#00FFFF;}</style>
фывфывфыв
<a href="http://forum.mybb.ru/profile.php?id=26823" rel="nofollow">
Профиль
</a>
Бла-Бла-бла

Всё выделяете и давите кнопку

0

18

Deff
Ааа, Вы о коде HTML непосредственно в посте? Я же говоря о ссылке, имела ввиду одну конкретную:

Deff написал(а):

Cиним, ссылка на данную тему, для вопросов от пользователей скрипта,
о которой скажу далее...

То бишь ссылка "FAQ", которая на панели BB кодов возле самой кнопки "HTML в постах".

Отредактировано Eldena (Чт, 12 Мар 2015 20:28:58)

0

19

Eldena написал(а):

Ааа, Вы о коде HTML непосредственно в посте?

Да

Каждый код ставится в свой отдельный фрейм со своим HTML отвязанным от страницы
Поэтому можно проставлять свой собственный стиль к каждому коду, а можно один общий,
Но вставляем всё вместе с кодом

+1

20

нет, той же кнопкой, тот что Вы вставляли HTML и раньше

0


Вы здесь » Единый форум поддержки » Архив » Безопасный HTML в постах для произвольного юзера!