• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy możliwość ustawienia avataru użytkownika na podstawie adresu URL jest bezpieczne?

Object Storage Arubacloud
+1 głos
164 wizyt
pytanie zadane 4 października 2020 w Bezpieczeństwo, hacking przez Artek Stary wyjadacz (11,800 p.)
Użytkownik podaje adres URL obrazu. Obraz przechodzi walidację, sprawdzamy czy rzeczywiście wskazuje na obraz z odpowiednim rozszerzeniem. Po przejściu walidacji właściwość css avataru użytkownika o nazwie background-image wskazuje na ów URL. Czy takie rozwiązanie jest bezpieczne, czy otwieramy furtkę hakerom? Przy okazji, gdzieś obiło mi się o uszy, że pliki svg mogą być wykorzystane do ataku cross-site-scripting poprzez umieszczenie w nich kodu JS - czy to prawda?

1 odpowiedź

+3 głosów
odpowiedź 4 października 2020 przez Comandeer Guru (601,450 p.)
wybrane 4 października 2020 przez Artek
 
Najlepsza

Przy okazji, gdzieś obiło mi się o uszy, że pliki svg mogą być wykorzystane do ataku cross-site-scripting poprzez umieszczenie w nich kodu JS - czy to prawda?

Tak, pliki SVG mogą zawierać kod JS. Niemniej jeśli mamy ustawiony odpowiednio Content Security Policy + wczytujemy obrazek przy pomocy img, to ryzyko jest minimalne.

Niemniej wczytywanie obrazka z zewnętrznej strony może służyć do trackowania innych użytkowników (bo nie wiesz, co robi serwer, zanim nie wyśle obrazka). 

komentarz 4 października 2020 przez Artek Stary wyjadacz (11,800 p.)

Tak, pliki SVG mogą zawierać kod JS. Niemniej jeśli mamy ustawiony odpowiednio Content Security Policy + wczytujemy obrazek przy pomocy img, to ryzyko jest minimalne.

Dobrze wiedzieć, dzięki za informację. 

Niemniej wczytywanie obrazka z zewnętrznej strony może służyć do trackowania innych użytkowników (bo nie wiesz, co robi serwer, zanim nie wyśle obrazka). 

Czy byłbyś w stanie bardziej szczegółowo opisać w jaki sposób takie trackowanie mogłoby wyglądać? Czy oprócz tego byłaby możliwość dokonania innego ataku, np cross-site scripting? 

1
komentarz 4 października 2020 przez Comandeer Guru (601,450 p.)

Czy byłbyś w stanie bardziej szczegółowo opisać w jaki sposób takie trackowanie mogłoby wyglądać?

Choćby skrypt PHP, który by zapisywał sobie IP + User Agent, a dopiero potem odsyłał obrazek.

Czy oprócz tego byłaby możliwość dokonania innego ataku, np cross-site scripting?  

Hm, jeślibyśmy wyświetlali ten obrazek w img, to raczej dość trudno byłoby zrobić jakiś atak XSS, 

komentarz 4 października 2020 przez Artek Stary wyjadacz (11,800 p.)

Choćby skrypt PHP, który by zapisywał sobie IP + User Agent, a dopiero potem odsyłał obrazek.

Racja, nie pomyślałem o tym. 

  Hm, jeślibyśmy wyświetlali ten obrazek w img, to raczej dość trudno byłoby zrobić jakiś atak XSS,

Spoko, a z czego wynika ta różnica pomiędzy elementem img a elementem np. div z ustawionym background-image? Zakładając, że mamy diva z ustawianym background-image : url('www.evil.com') jak doczepić do czegoś takiego kod js? 

 

Trochę mam dylemat z tymi avatarami bo wiem, że dla użytkownika raczej wygodniejsze jest podanie adresu URL niż pobieranie go na dysk i przesyłanie na serwer. Dobre jest też dla serwera bo nie musi przechowywać pliku. No, ale zastanawia mnie właśnie tak kwestia bezpieczeństwa.

komentarz 4 października 2020 przez Comandeer Guru (601,450 p.)

Spoko, a z czego wynika ta różnica pomiędzy elementem img a elementem np. div z ustawionym background-image? Zakładając, że mamy diva z ustawianym background-image : url('www.evil.com') jak doczepić do czegoś takiego kod js? 

Ale ja nigdzie nie pisałem o innych elementach ;)

Napisałem, że SVG wsadzone w img nie powinno odpalić skryptu JS – i to prawda. Chodziło mi o to, że dopiero wstawienie SVG przez tag SVG lub object/iframe odpali skrypt. 

komentarz 4 października 2020 przez Artek Stary wyjadacz (11,800 p.)

Napisałem, że SVG wsadzone w img nie powinno odpalić skryptu JS – i to prawda. Chodziło mi o to, że dopiero wstawienie SVG przez tag SVG lub object/iframe odpali skrypt. 

Rozumiem. Podsumowując - jak rozumiem, takie rozwiązanie niesie za sobą jedynie ryzyko śledzenia użytkowników.  Chociaż to jest o tyle utrudnione, że użytkownik sam musiałby wybrać ten spreparowany obrazek. W przypadku plików SVG wykorzystanie elementu img i odpowiednie ustawienie Secury Policy uniemożliwi wstrzykiwanie kodu JS.

1
komentarz 4 października 2020 przez Comandeer Guru (601,450 p.)

Chociaż to jest o tyle utrudnione, że użytkownik sam musiałby wybrać ten spreparowany obrazek

Niekoniecznie. Każdy request do danego serwera zostawia po sobie ślad w logach. 

komentarz 4 października 2020 przez Artek Stary wyjadacz (11,800 p.)
No tak, gdybym chciał śledzić użytkowników mógłbym swój avatar ustawić w taki sposób aby odnosił się do www.evil.com i np. każdy użytkownik któremu wyświetliłby się mój avatar przesłałby dane do evil.com.

Podobne pytania

0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 21 marca 2016 w JavaScript przez GaCeL Dyskutant (7,500 p.)
0 głosów
1 odpowiedź 324 wizyt
0 głosów
1 odpowiedź 903 wizyt

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...