LJR: bugs - Работает и в ЛЖР
August 4th, 2008
06:25 pm
[peter_lemenkov]

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Работает и в ЛЖР
http://apazhe.net/2008/08/03/8182/#comments

Как вариант решения - запретить html онанимусам.

(7 comments | Leave a comment)

Comments
 
[User Picture]
From:[info]beshenov
Date:August 4th, 2008 - 10:08 pm
(Link)
Скринить анонимные комментарии.
[User Picture]
From:[info]tiphareth
Date:August 5th, 2008 - 04:31 pm
(Link)
Само собой.
Я дисаблил эксплойт добавлением строки
hash->{style} =~s/(position|top|left|width|height):.*?(?:;|$)//gi
(всем, не только анонимам),
в результате какие-то вполне легитимные
юзеры лишились функциональности, но как временное
решение сойдет, а потом Петя придумает умное
[User Picture]
From:[info]beshenov
Date:August 5th, 2008 - 10:48 pm
(Link)
position, top, left никто из добрых побуждений использовать не будет точно. width и height — только что задать размеры картинки или вроде того, но не особо нужно.

Испортить страницу можно еще несколькими способами, хотя бы написать

<span style="font-size: 5000%">foobar</span>

Наверное, анонимам проще вообще запретить style.
[User Picture]
From:[info]tiphareth
Date:August 6th, 2008 - 02:48 am
(Link)
Да, но есть же еще <font size=1000>
или типа того

штуку с span style="font-size: 5000%" (а равно
и с изображением залупы в тот же размер)
народ вроде активно практикует в комментах уже
лет 10, с ней легко бороться посредством
стирания и бана. Эксплойт с position, top, left
таким образом не лечится, если не делать
nohtml=1, а типичному пользователю это будет
очень трудно обьяснить
[User Picture]
From:[info]tiphareth
Date:August 6th, 2008 - 02:49 am
(Link)
хотя сделать опцию "запретить анонимам html"
нужно, да, обязательно
[User Picture]
From:[info]beshenov
Date:August 6th, 2008 - 03:21 am
(Link)
А им уже нельзя ставить ссылки и нормально добавлять картинки. (Это еще в движке LJ было, как я понимаю.) Так что если полностью запретить разметку — ничего страшного.

1. Указать рядом с полем ввода комментария, что под анонимом HTML нельзя.
2. В код добавить

use HTML::Entities;

# ...

# если аноним
{
  encode_entities($text, '<>&"');
}


Как-то так.
[User Picture]
From:[info]beshenov
Date:August 6th, 2008 - 03:23 am
(Link)
Даже не '<>&"', а просто '<>&'.
Powered by LJ.Rossia.org