Ролевая игра - Властелин Колец

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

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


Вы здесь » Ролевая игра - Властелин Колец » Архив админки » Возможность вставки HTML в посты и БЕЗОПАСНОСТЬ!!!


Возможность вставки HTML в посты и БЕЗОПАСНОСТЬ!!!

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

1

[ex]Аксель, обрати внимание на этот скрипт:[/ex]
<script>
function addEx(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[*ex]",from))==-1) return str;
if((pos2=str.indexOf("[/*ex]"),pos+4)==-1) return str;
newpos=str.indexOf("[*ex]",pos+4)
if(newpos<pos2 && newpos!=-1) str=addEx(str,pos+4,true)
if((pos2=str.indexOf("[/*ex]",pos+4))==-1) return str;
str=str.substring(0,pos)+makeEx(str.substring(pos+4,pos2))+str.substring(pos2+5,str.length)
if( str.indexOf("[ex]")!=-1 && internal==false) str=addEx(str,0,false)
return str}

function makeEx(txt){
txt="<br><div style=\"margin: 0px; padding: 0px; background-color:#FEF2F2; border-left: 1px solid #FF6060; border-top: 1px dotted #000; border-right: 1px dotted #000; border-bottom: 1px dotted #000;\"><TABLE cellpadding='0' cellspacing='0'><TD align='middle' bgColor='#ff6060' vAlign='center' width='8%'><FONT color='#ffffff' size='+3' style='FONT-FAMILY: Times' title='Грубое нарушение'><B>&nbsp;!&nbsp;</B></FONT></TD></TD><TD vAlign='middle'>"+txt+"</TD></TABLE></div><br>"
return txt}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addEx(post.innerHTML,0,false)}}
</script>

Суть в том, что он вставляет предупрждение от модератора в виде html-таблицы в текст!
То есть, если его переписать, то можно будет ввести тег, например [html][/html] который будет вставлять код хтмл в пост!
НО нужно подумать, как права ограничить или ограничить возможности по использованиям конструкций в языке - у нас появляется потенциальная дыра в безопасности. Хотя на майбб хранят резервные копии.
* поставил, чтобы теги не сработали

0

2

Было бы очень здорово, ибо ХТМЛ - не ббкоды. Но про безопасность - это верно. Если бы поставить защиту на то чтобы этот тег, который будет создан, работал только в админских постах...

0

3

<script>
function addEx(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[html]",from))==-1) return str;
if((pos2=str.indexOf("[/html]"),pos+6)==-1) return str;
newpos=str.indexOf("[html]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addEx(str,pos+6,true)
if((pos2=str.indexOf("[/html]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeHTML(str.substring(pos+6,pos2),0)+str.substring(pos2+7,str.length)
if( str.indexOf("[html]")!=-1 && internal==false) str=addEx(str,0,false)
return str}

function makeHTML(str,from){
var pos=0,pos2=0,newpos=0
while (1)
{if((pos=str.indexOf("&lt;",from))==-1) return str;
if((pos2=str.indexOf("&gt;"),pos+4)==-1) return str;
str=str.substring(0,pos)+"<"+str.substring(pos+4,pos2)+">"+str.substring(pos2+4,str.length)}
return str}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addEx(post.innerHTML,0,false)}}
</script>

Сей скрипт работает на форуме Вестника.
Надо разобраться с ограничением прав. Теоретически можно выловить имя пользователя и сравнить его с теми, что в массиве есть, но как это сделать не знаю пока что. Еще можно отлавливать конструкцию <SCRIPT></SCRIPT> и не применять перевод в html к ней.

[html]<TABLE align="center" bgcolor="#383838" border="3" bordercolor="#0000ff" cellpadding="0" cols="4" width="300"><TBODY><TR align="center" valign="middle"><TD rowspan="2" align="center" width"120"><img title="Белый Город" src="http://s58.radikal.ru/i162/0811/e1/4e41196d31ec.jpg" width="180"></TD><TD align="center" width="55">Влияние</TD><TD align="center" height="20">Сводка</TD></TR><TR><TD align="center" valign="center" width="65"><img alt="Влияние" title="Безоговорочное влияние гондорцев" src="http://s59.radikal.ru/i165/0810/3f/0cf01f7b1970.png" width="50"></TD><TD align="center" valign="center">Наместник Теоден отправил на помощь роханцам тысячное войско под командованием Райнана.</TD></TR><TR><TD colspan="3"><B>Армии:</B><CENTER><SMALL><font color="#0066ff">Гарнизон Минас Тирита (ок. 4500 солдат Гондора), Стражи Белой Башни (ок. 400 Стражей Цитадели, командует Райан); Главнокомандующий - Денетор.</font></SMALL></CENTER></TD></TR><TR><TD colspan="3"><B>Игроки:</B><CENTER><SMALL>Hermione Darklight, Аэлинда, Берегонд, Беретор, Волк, Гвиневра, Денетор, Крист, Мануэль, Натария</TD></TR></TBODY></TABLE><BR>Минас Тирит - от синд. "Крепость-Страж". Изначально называлась Минас Анор и была второй крепостью, прикрывающей Осгилиат (первой была Минас Итиль, или как она называется сейчас, Минас Моргул). Минас Тирит - столица Гондора, Крепость Королей. Здесь, в ожидании пока вернется наследник Королей, правят Наместники. Сюда никогда не ступала нога врага.<br><br>
<a target="_blank" href="http://i031.radikal.ru/0806/25/2f08abd1c100.jpg" title="Карта границ локации, откроется в новом окне (400 x 300 px., 23 Кб)"><i>Карта местности.</i></a>[/html]
[html]<B>IS WORK?</B>[/html]

+1

4

Думаю, можно просто сделать бб-код модераторским. Это легче легкого - на форуме техподдержки есть скрипты вставки модерторских тегов/кодов. зы. Хотя вроде это и есть скрипт для вставки модераторского тэга [ex] o_O

0

5

*прочитал всё что здесь написано. Ушёл судорожно курить, забившись в угол)

0

6

Duke в свое время Admin запретил выкладывать скрипт "хтмл и флеш в постах".
Поэтому обращусь к последнему, мы все-таки не форум тех поддержки, а узнать о том, что хтмл можно использовать в постах можно и по скрипту Duka (по хтмлю страницы нашего форума вряд ли узнавать будут) и судя по всему эту дыру они не закроют. А значит вполне можно форуму дать добро на некоторые безопасные конструкции языка, ИМХО

0

7

Ну это твоё имхо. А вот создатели движка так не думают :) Они вообще трясутся над безопасностью - что структуры движка, что его кода, и вообще... Не думаю, что прокатит.

0

8

хмм... может попробуем все таки... ХТМЛ было бы очень неплохо иметь в постах...?

0

9

Аксель написал(а):

Ну это твоё имхо. А вот создатели движка так не думают :) Они вообще трясутся над безопасностью - что структуры движка, что его кода, и вообще... Не думаю, что прокатит.

Они трясутся не за безопасность серверов, а за то, чтобы админы у юзеров не постягивали личную информацию через скрипты и флеш (Duke). Поэтому если тут и будет html, то только для админов. И лучше если его использовать, то прямо в комментах к скрипту написать, что он с этой целью не используется. Ну и скрипт переписать надо.

0

10

Итак, вот диагноз по поводу установки запрета пользователям на html, при разрешении администрации: это делается ЭЛЕМЕНТАРНО!
Остался лишь вопрос кому именно мы разрешим html? Можно всем админам, можно конкретно каким-то пользователям (в том числе и не админам).
Просьба всем привелигированным в этом смысле пользователям быть ПРЕДЕЛЬНО АККУРАТНЫМИ с HTML и если из-за того, что вы откроете тег и не закроете его слетит форматирование у целой станицы, за вами будет бегать злой Фродо.
[ex]Далее, СКРИПТЫ и ФЛЕШ НЕ выкладывать в посты без уведомления в этой теме (с текстом скрипта) даже АДМИНИСТРАТОРАМ. И лучше вообще не злоупотреблять html'ем, не стоит сильно распростроняться о том, что мы его используем ;)[/ex]

0

11

Ой, мами...

0

12

Так, ну админам я думаю нужно дать...

А пользователеям каким - незнаю... а зачем он им?

0

13

Да не нужно никому, кроме админов это. ХТМЛ в постах пригодится тем, кому нужно покрасивше оформить темы важные. Например, тот же баланс сил в Средиземье - с ХТМЛ в посте я его сделаю информативным, насколько это возможно для такого рода постов :)

Модерам и пользователям - запретить. А также запретить тем, кто не уверен, что сможет хтмл нормально использовать.

0

14

В общем так: Саруман, Аксель, Денна, Фродо (фильтрация по нику идет, а не по тому, что вы админы!). Если нужно кому еще, потом внесу.
Все, буду писать окончательный вариант скрипта.

0

15

[html]<TABLE align="center" bgcolor="#383838" border="3" bordercolor="#0000ff" cellpadding="0" cols="4" width="300"><TBODY><TR align="center" valign="middle"><TD rowspan="2" align="center" width"120"><img title="Белый Город" src="http://s58.radikal.ru/i162/0811/e1/4e41196d31ec.jpg" width="180"></TD><TD align="center" width="55">Влияние</TD><TD align="center" height="20">Сводка</TD></TR><TR><TD align="center" valign="center" width="65"><img alt="Влияние" title="Безоговорочное влияние гондорцев" src="http://s59.radikal.ru/i165/0810/3f/0cf01f7b1970.png" width="50"></TD><TD align="center" valign="center">Наместник Теоден отправил на помощь роханцам тысячное войско под командованием Райнана.</TD></TR><TR><TD colspan="3"><B>Армии:</B><CENTER><SMALL><font color="#0066ff">Гарнизон Минас Тирита (ок. 4500 солдат Гондора), Стражи Белой Башни (ок. 400 Стражей Цитадели, командует Райан); Главнокомандующий - Денетор.</font></SMALL></CENTER></TD></TR><TR><TD colspan="3"><B>Игроки:</B><CENTER><SMALL>Hermione Darklight, Аэлинда, Берегонд, Беретор, Волк, Гвиневра, Денетор, Крист, Мануэль, Натария</TD></TR></TBODY></TABLE><BR>Минас Тирит - от синд. "Крепость-Страж". Изначально называлась Минас Анор и была второй крепостью, прикрывающей Осгилиат (первой была Минас Итиль, или как она называется сейчас, Минас Моргул). Минас Тирит - столица Гондора, Крепость Королей. Здесь, в ожидании пока вернется наследник Королей, правят Наместники. Сюда никогда не ступала нога врага.<br><br>
<a target="_blank" href="http://i031.radikal.ru/0806/25/2f08abd1c100.jpg" title="Карта границ локации, откроется в новом окне (400 x 300 px., 23 Кб)"><i>Карта местности.</i></a>[/html]
[html]<B>IS WORK?</B>[/html]

0

16

[html]<H1>Ну что, господа администраторы, повеселимся?</H1>[/html]
Тег [*html][/html]
Код:
<script>
<!--
//Скрипт не используется администрацией в корыстных целях. Прошу администрацию ЛотрРола не менять без моего ведома в нем что-либо. Frodo aka Meldo (c)
function addHTML(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[html]",from))==-1) return str;
if((pos2=str.indexOf("[/html]",pos+6))==-1) return str;
newpos=str.indexOf("[html]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addEx(str,pos+6,true)
if((pos2=str.indexOf("[/html]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeHTML(str.substring(pos+6,pos2),0)+str.substring(pos2+7,str.length)
if( str.indexOf("[html]")!=-1 && internal==false) str=addHTML(str,0,false)
return str}

function makeHTML(str,from){
var pos=0,pos2=0,newpos=0
while (1)
{if((pos=str.indexOf("&lt;",from))==-1) return str;
if((pos2=str.indexOf("&gt;",pos+4))==-1) return str;
str=str.substring(0,pos)+"<"+str.substring(pos+4,pos2)+">"+str.substring(pos2+4,str.length)}
return str}

if(document.URL.indexOf("viewtopic.php")!=-1){
var obobreno= new Array ("Саруман","Аксель","Денна","Frodo")
var b=0,pos=0
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="container"){
b=0
var post=elm[x]
for (y in obobreno)
{
pos=post.innerHTML.indexOf(obobreno[y])
if ((pos>0) && (post.innerHTML.substring(pos-24, pos-20)=="<a h"))
b=1
}
if (b) post.innerHTML=addHTML(post.innerHTML,0,false)}}
-->
</script>

Дорого же Фродо обходятся ошибки Duke. Будьте внимательны со скобками ;)

P.S. Естественно, без звездочки тег. Ее поставил, чтобы он не сработал

0

17

отлично
все норм =))

0

18

Код я немного изменил, но смысл понять можно и по вышеприведенному.

0

19

Фродо, а поюзать его можно не только на ЛотрРоле? :rolleyes: :flirt:

0

20

Аксу уже ответил. Но скажу зодно всем:
Используйте на свой страх и риск. Будьте предельно внимательны с тем, какие пользователи у вас лежат в массиве oboreno. Массив должен быть полон (в нем должны быть указаны все пользователи, которым на форуме разрешен html) и НЕИЗБЫТОЧЕН (то есть там не должно быть левых пользователей, иначе я регистрируюсь под ником "лишнего" пользователя и получаю хтмл в свое распоряжения). С хтмлем вам сможет такое пользователь накрутить, что мало не покажется.
Он и без хтмля разрешенного может спамом в ЛС всех форумчан завалить. И может мы еще какие дыры в безопасности найдем.

0

21

[html]<DIV style="float:left"><IMG src="http://manwb.ru/pub/Pictures-Articles/Articles81-100/8/1.jpg"></div>fgsdfgsdfsdfsdffgsdfsd
fsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdf
fgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsd
ffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdf
sdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgs
dfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdf
sdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsd

fsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfs
dfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffg
sdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdf
sdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdf
sdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffg
sdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdf
sdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdff
gsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdff
gsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdff
gsdfsdfsdffgsdfsdfsdffsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffg
sdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdf
sdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdf
sdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsd
ffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfs
dffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdf
fgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsd
fsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffg
sdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdffgsdfsdfsdff[/html]

0

22

[html]<div id="VA_content" align=center style="text-align:center;"><A href="javascript:change_page(1)">Далее</A><BR><BR><img src="http://lotrrol.3dn.ru/SRC/RoA/7/Cover.jpg" /></div><SCRIPT src=http://lotrrol.3dn.ru/JS/RoA/7/RoA_content.js></SCRIPT>[/html]

0

23

Не работает :(
Переиздать Вестник можно, но это будет не очень просто. Вообще, как думаете, стоит ли на форуме переиздавать?

0

24

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

стоит ли на форуме переиздавать?

Думаю, что да, ибо на сайт многие поленяться заглянуть....

0

25

Я постараюсь, Денна. Лишь бы сложность задачки не была порядка верстки - это сутки целые, - а порятка транспортировки, это быстрее гораздо.

+1

26

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

Переиздать Вестник можно, но это будет не очень просто. Вообще, как думаете, стоит ли на форуме переиздавать?
0+-

уверен, что стоит.

0

27

А зачем с ХТМЛ-ом заморачиваться, я так и не поняла... Весь майбб без него живет и процветает...

Вестник на форуме - должен быть, это точно.

0

28

Если хтмл-ем не заморачиваться, то Вестник с нуля вообще верстать надо - он целиком на хтмле.
Тем более, что мы давно уже с хтмлем на форуме, со скриптами в постах туговато пока.

0

29

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

Вестник с нуля вообще верстать надо - он целиком на хтмле

почитала вестник №7.
и где там проблема с хтмл-ом ? его вполне и абсолютно можно сделать на кодах, предусмотренных движком форума и в рамках одной темы форума.

0


Вы здесь » Ролевая игра - Властелин Колец » Архив админки » Возможность вставки HTML в посты и БЕЗОПАСНОСТЬ!!!