Страница 1 из 1

фигня какая-та про тэги

Добавлено: 2009-11-25 19:37:33
thefree

Код: Выделить всё

sub _cleaning {   # сносить оспасный теги
    my $self = shift;

    $self->{value} =~ s!0!!g;
    $self->{value} =~ s|&|;|g;
    $self->{value} =~ s|<!--||g;
    $self->{value} =~ s|-->||g;
    $self->{value} =~ s|<script||ig;
    $self->{value} =~ s|>||g;
    $self->{value} =~ s|<||g;
    $self->{value} =~ s|"||g;
    $self->{value} =~ s|  | |g;
    $self->{value} =~ s!\|!|!g;
    $self->{value} =~ s|\n||g;
    $self->{value} =~ s|\$||g;
    $self->{value} =~ s|\r||g;
    $self->{value} =~ s|\_\_(.+?)\_\_||g;
    $self->{value} =~ s|\\||g;
    $self->{value} =~ s|\'||g;
    $self->{value} =~ s|!||g;

    return $self;

}
это пиздец ... ладно Вы бы заменяли ... что-то так вы проста вырезает

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 4:01:54
ProFTP
тут нужно было именно вырезать...

взято с ikonboard

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 9:29:34
thefree
еще раз говорю это пиздец.

Код: Выделить всё

$self->{value} =~ s|<script||ig;
если вы вырезали начало тяга то может быть и стоит вырезать конец?
да и потом если кто-то что-то написал то может не стоит безбожно копировать? в regexp есть такая штучка как |

фигня какая-та про тэги

Добавлено: 2009-11-26 9:37:24
ProFTP
я взял готовое чтобы не изобретать велосипед... чтобы не сделать ошибки и вообще, а форум ikonboard более менее популярный и любая XSS там не пройдет...

===

s|>||g - это удаляется, на cчет <\script - оно роли не играет, по-моиму оно удаляется само, можно удалить, какая разница?

это удаление XSS просто - это фигня ... роли не играет

еще есть некоторые модули на cpan.org можно их использовать для удаления или экранирования XSS

Код: Выделить всё

sub clean {
    my $Tmp = shift;
    return '' unless defined $Tmp;
    $Tmp =~ s|&|&|g;
    $Tmp =~ s|<!--|<&#33;--|g; $Tmp =~ s|-->|-->|g;
    $Tmp =~ s|<script|<script|ig;
    $Tmp =~ s|>|>|g;
    $Tmp =~ s|<|<|g;
    $Tmp =~ s|"|"|g;
    $Tmp =~ s!^\s+!!;
    $Tmp =~ s!\s+$!!;
    $Tmp =~ s|  | &nbsp;|g;
    $Tmp =~ s!\|!&#124;!g;
    $Tmp =~ s|\n|<br>|g;
    $Tmp =~ s|\$|&#036;|g;
    $Tmp =~ s|\r||g;
    $Tmp =~ s|\_\_(.+?)\_\_||g;
    $Tmp =~ s|\\|&#92;|g;
    $Tmp =~ s|!|&#33;|g;
    $Tmp =~ s|\'|'|g;
    return $Tmp;
}

что вы имеете ввиду?

кроме слова "пиздец" :smile:

если тебе нужно удалить <\script - удали...

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 12:46:54
thefree
ProFTP писал(а):я взял готовое чтобы не изобретать велосипед... чтобы не сделать ошибки и вообще, а форум ikonboard более менее популярный и любая XSS там не пройдет...

===

s|>||g - это удаляется, на cчет <\script - оно роли не играет, по-моиму оно удаляется само, можно удалить, какая разница?

это удаление XSS просто - это фигня ... роли не играет

еще есть некоторые модули на cpan.org можно их использовать для удаления или экранирования XSS

Код: Выделить всё

sub clean {
    my $Tmp = shift;
    return '' unless defined $Tmp;
    $Tmp =~ s|&|&|g;
    $Tmp =~ s|<!--|<&#33;--|g; $Tmp =~ s|-->|-->|g;
    $Tmp =~ s|<script|<script|ig;
    ...
    $Tmp =~ s|\'|'|g;
    return $Tmp;
}

что вы имеете ввиду?

кроме слова "пиздец" :smile:

если тебе нужно удалить <\script - удали...
Я введу к тому что перед тем как брать велосипед сначала надо подумать что вы делаете ...

Код: Выделить всё

 $Tmp =~ s|<script|<script|ig; и $self->{value} =~ s|<script||ig;
это 2е БОЛЬШИХ РАЗНИЦЫ,
если пойдет строчка <script>sdsdsd</script> на выходи после вашего преобразование мы получим sdsdsd/script, вам не кажется что, что-то лишнее появляется? ах и еще в REGEXP есть |
p.s. а слово пиздец молодой чиловек можете рассматривать как частный случай. Потому что, не вижу логики в урезание велосипеда, когда вы режете и не понимает что режете.

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 13:35:23
ProFTP
да, правильно, но данный метод используется в фильтрации ТОЛЬКО заголовков, такие как на на этом форуме
Заголовок:
задача: удалить опасный тэги
(подчеркиваю)

нормальные человек ставить тєг "</sсript>" в заголовок не будет, по этому это двоично и даже троично
для экранирвоание тэгов таких в тексте я поставил:
use HTML::Entities::Numbered;

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 14:34:38
thefree
ProFTP писал(а):да, правильно, но данный метод используется в фильтрации ТОЛЬКО заголовков, такие как на на этом форуме
Заголовок:
задача: удалить опасный тэги
(подчеркиваю)

нормальные человек ставить тєг "sсript" в заголовок не будет, по этому это двоично и даже троично
для экранирвоание тэгов таких в тексте я поставил:
use HTML::Entities::Numbered;
да какая разница? вы удаляете опасные тяги, так удаляйте его до конца и потом зачем удалять если надо экранировать? в друг у меня будет
заголовок: помогите с <script src=></ ...
вы же проста повырезает кусок. И это не правильно так еще вы и regexp не может нормально использовать.

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 15:02:17
ProFTP
ProFTP писал(а):если тебе нужно удалить <\script - удали...

Re: фигня какая-та про тэги

Добавлено: 2009-11-26 15:08:29
thefree
зачем тогда ваша статья? зачем вы что-то публикуете если
1. Решения не полное
2. Оно не оптимальное
3. У вас 3 функции которые делаю почти одно и то же...

Да и вообще использовать хешь в пустую это тупа.

Re: фигня какая-та про тэги

Добавлено: 2009-12-04 16:56:16
thefree
это был пост к вашей статье и не стоила разделять тему ... не очень красиво ...
===
Коментил я вашу статью и код от туда или критика не устраивает?

Re: фигня какая-та про тэги

Добавлено: 2009-12-04 17:04:56
hizel
ээ, миль пардон , надо было сцылку сделать на исходник :-)

Re: фигня какая-та про тэги

Добавлено: 2009-12-04 17:11:26
thefree
да я тут что-то слюной стал брызгать ... вот разделили тему ...
Ну не оптимальный код и с кучей ошибок ...