Tomasz Chiliński
Tomasz Chiliński
Od strony JS, a konkretnie jQuery jest to banalnie proste - `.text()`.
Przy zapisie pól informacji, notatek, wiadomości i notatki na dokumencie w kartotece klienta również są już usuwane niebezpieczne elementy HTML (na razie ``; pewnie w przyszłości dojdzie usuwanie innych potencjalnie...
Używamy już przy parsingu maili HTML od klientów: http://htmlpurifier.org/ i to ładnie eliminuje wszelki podejrzany kod HTML, również atrybuty. Dla pól wielowierszowych klienta o których wcześniej wspomniałem nie możemy zrobić...
No i, co istotne, HTMLPurifier używamy od 26.x, więc nikłe są szanse, żeby mocniejsze zabezpieczenia oparte o tą bibliotekę trafiły do starszych wersji LMS+ :(
> w sekcji `Contact phones > Contact phone` jesli sie ustawi `0700" onload="alert(1)` to bedzie to poprawny bez uzywania `>
Ano - wypełniłem formularz kontaktu telefonicznego (konkretnie numer telefonu) następująco:  Zapisałem zmiany klienta i w formularzu informacji o kliencie (customerinfo) nie wyskakuje mi alert JS.
Już widzę jak można tego użyć - wystarczy wpisać zdarzenie dla elementu html, które przeglądarka dla danego elementu wygeneruje. Zdecydowanie trzeba wszystkie formatowania kontaktu opakować w htmlspecialchars().
Jeszcze raz dzięki za demonstrację podatności XSS, które dostarczamy ;-)
Poszła kolejna zmiana - od 26.x mamy metodę publiczną statyczną **removeInsecureHtml()**, która eliminuje niebezpieczny kod w HTML w oparciu o HTMLPurifier. W 25.x i 24.x mamy również tą metodą, ale...
@rafalpietraszewicz @awbnet @interduo poprawiamy hurtowo poprzez pseudoaktualizację schematu bazy danych (lib/upgradedb) zawartości pól customerinfo: notes, info, message i docmemo? One do tej pory mogły zawierać niebezpieczny kod HTML. Po dzisiejszych...