Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy można zaufać funkcjom z biblioteki gd2?
stefan33
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 4
Dołączył: 22.07.2012

Ostrzeżenie: (0%)
-----


Witam
Mam napisany skrypt js+ajax w którym można do obrazka dodać np. tekst. Dane typu rozmiar, kolor czcionki itd. wysylam ajaxem poprzez post.
Używam np. takiej funkcji:
  1. imagettftext($obrazek, $_POST['font_size'], 0, $_POST['x'], $_POST['y'], $_POST['color'], "{$_SERVER['DOCUMENT_ROOT']}/arial.ttf", $_POST['text']);

error_reporting jest ustawione na 0. I pytanie czy powinienem filtrować te dane czy w ten sposób potencjonalny haker nie ma mozliwosci wyrzadzic zadnych szkod? Teoretycznie jeżeli coś będzie nie tak to np. w tym wypadku tekst nie doda się do obrazka wiec nic sie nie dzieje. Nie chodzi tu o moje lenistwo a jedynie o wydajność, poniewaz jakbym wszystko chcial porzadnie filtrowac to by potem dochodzilo nawet do stu i wiecej dodatkowych if'ów itd. Z góry dziekuje za odpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Dane wejściowe filtrujemy zawsze.
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nie chodzi tu o moje lenistwo a jedynie o wydajność, poniewaz jakbym wszystko chcial porzadnie filtrowac to by potem dochodzilo nawet do stu i wiecej dodatkowych if'ów itd.

1) Nawet jakbyś miał mieć niby te 100 IFów to i tak mają być
2) No i z tymi 100 IFami to "lekko" przesadziłeś.... Jakie ty chcesz tu mieć IFy do filtracji tych danych do tego kodu?
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Rozmiary wystarczy rzutować na INT, color na pewno musisz i tak weryfikować czy jest faktycznie poprawnym kolorem i potem text wypadałoby ograniczyć jakoś ale nie sądzę, żeby użycie jakichś specjalnych znaków mogło prowadzić do włamania czy coś. GD to nie baza danych.
Go to the top of the page
+Quote Post
stefan33
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 4
Dołączył: 22.07.2012

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 2.10.2012, 17:47:10 ) *
2) No i z tymi 100 IFami to "lekko" przesadziłeś.... Jakie ty chcesz tu mieć IFy do filtracji tych danych do tego kodu?

Tekstów może być wiele naraz, a w jednej pętli m.in:
  1. if(in_array($_POST['font_size'],$czcionki))
  2. if(in_array($_POST['color'],$kolory))
  3. if(is_numeric($_POST['x']) && is_numeric($_POST['y']) && ..)
  4. if($_POST['x'] < $obrazekDlugosc && ..)

Praktycznie rzecz biorąc chodziło mi o testy a nie if'y bo if moze byc nawet i jeden zbity z 10 więc to pojęcie względne

Cytat(markonix @ 2.10.2012, 17:49:30 ) *
Rozmiary wystarczy rzutować na INT, color na pewno musisz i tak weryfikować czy jest faktycznie poprawnym kolorem i potem text wypadałoby ograniczyć jakoś ale nie sądzę, żeby użycie jakichś specjalnych znaków mogło prowadzić do włamania czy coś. GD to nie baza danych.

Właśnie o to mi chodzi.. No i rzutowanie rozmiarów na int też nie wystarczy bo mogą być niepasujące do wymiarów obrazka.. Teoretycznie jak ktoś się uprze to niech sobie powpisuje bzdury, ale nic lepszego nie osiągnie niz by mógl zrobić w paincie..

Ten post edytował stefan33 2.10.2012, 18:01:49
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(stefan33 @ 2.10.2012, 18:59:42 ) *
Właśnie o to mi chodzi.. No i rzutowanie rozmiarów na int też nie wystarczy bo mogą być niepasujące do wymiarów obrazka.. Teoretycznie jak ktoś się uprze to niech sobie powpisuje bzdury, ale nic lepszego nie osiągnie niz by mógl zrobić w paincie..

Jeżeli robisz generator obrazka, z którego będą korzystać różni ludzie to go po prostu zabezpieczasz przed pomyłką korzystającego z niego - informujesz, że podał złe rozmiary, zły kolor (tutaj przyda się colorpicker), natomiast jeżeli tworzysz sam dynamiczne obrazki i wiesz, że tylko specjalnie można je zmodyfikować (np. zmieniając parametry GET) to wybór już należy do Ciebie czy to walidować. Stworzy sobie jakiś kompromitujący obrazek ale nic z nim nie zrobi - przecież nie podmieni obrazków innym tylko sobie. To tak samo jakbym sobie modyfikował FireBugiem dowolną stronę - mogę wstawić zdjęcie kupy ale co z tego skoro wynik jest widoczny tylko dla mnie (IMG:style_emoticons/default/wink.gif) Sam sobie odpowiedziałeś z tym paintem też.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 16:24