Wątek przeniesiony 2021-02-06 19:01 z Test przez cerrato.

Przekleństwa w linku, Jakto za mało informacji ?

1

Zobacz to :D
http://google.pl
https://4programmers.net
A tak poważnie pisząc, to można płatać figle takim mechanizmem. W sekcji "Ostatnia aktywność" i w powiadomieniach jest tylko tekst opisu a nie ma adresu. Ktoś może wejść przez powiadomienie i kliknąć na szybko.
Mechanizm działa dość długo i nikt się nie skarżył.

2

@PerlMonk: Oczywiście nie wiem co poeta miał na myśli, ale zgaduje że chodziło bardziej o to że przekleństwa w opisach linków nie są cenzurowane, w przeciwieństwie do przekleństw normalnie w postach

5

Rzeczywiście, takie słowa powinny podlegać cenzurze, a jak widać - w pewnych okolicznościach to się nie dzieje. Moim zdaniem to jest bug.

4

Cenzura jest pomijalna w linkach czy znacznikach <img> bo może rozwalać po prostu link tak więc zostało to zrobione specjalnie.

2

@Adam Boduch: wszystko fajnie, ale markdownowych linków nie da się zepsuć:

[Japierdole kurwa Kurwa CHUUUJ Ale mu Pan powiedział jebać](https://www.youtube.com/watch?v=dQw4w9WgXcQ)

Cenzura może i powinna dotyczyć sekcji pomiędzy znakami [], czyli tego, co do URL-a nie należy. I w sumie tak samo powinno być w przypadku znaczników []()! czy <img>, jeśli chodzi o atrybut z tytułem odnośnika/obrazka.

2

Markdown jest najpierw konwertowany do HTML. Parser cenzury działa na samym końcu. Jest on oparty o regexp, może przynieść więc nieporządne "efekty uboczne" ;) Przypominam, że w module cenzury czasami zastępujemy dane słowa/wyrażenia kodem HTML. Jak widzicie, nie jest to takie proste do zrobienia jeżeli porównamy czas który trzeba na to poświęcić a efekt w postaci braku paru brzydkich słów w linkach ;)

3

@Adam Boduch: czyli podsumowując - nie jest to bug, ale celowe działanie, a w przypadku stwierdzenia takich treści trzeba je raportować, a któryś z moderatorów ręcznie je wyczyści. Dobrze zrozumiałem?

1

Tak :)

0
Adam Boduch napisał(a):

Markdown jest najpierw konwertowany do HTML. Parser cenzury działa na samym końcu.

No to niech działa na samym początku — i po problemie. ;)

3

Wówczas w kodzie markdown trzeba by pomijać wszystkie wystąpienia kodu źródłowego, czy też obrazków. O wiele łatwiej to zrobić mając kod HTML. Działa to tak:

$text = $this->hashBlock($text, ['code', 'a']);
$text = $this->hashInline($text, 'img');

Przed uruchomieniem parsera cenzury, wszystkie tagi <a>, <code> czy <img> są zastępowane hashem. Po zakończeniu prac, hashe są zastępowane oryginalnymi znacznikami HTML. Teraz zrób to samo w kodzie markdown, gdzie dla bloku kodu, backticków czy obrazków jest inne formatowanie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1