Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]nagłówki teoria
Forum PHP.pl > Forum > Przedszkole
plamaster
Otoż na jednej stronie o phph znalazlem taka oto porade

Uwaga!
Nie umieszczaj danych od użytkownika w nagłówkach bez uprzedniego usunięcia z nich przejść do nowej linii. W przeciwnym wypadku użytkownik będzie miał możliwość podrzucenia nowych nagłówków, a nawet dodania załączników do wiadomości i twój skrypt zostanie wykorzystany przez spamboty do rozsyłania spamu.


ale nie wiem za bardzo o co tu chodzi moze ktos bylby tak mily i podal mi jakis przykladzik

wielkie dzieki
erix
Chyba chodzi o nagłówki mailowe.

  1. <?php
  2. $naglowki = $adresMail."r\n"
  3. ?>


Bez filtracji można dopisać cokolwiek - nowych adresatów, etc.
Zyx
Przykład jest prosty. Weźmy skrypt z tego kursu (btw. miło, że ktoś go czytuje smile.gif) tuż nad wspomnianym komunikatem i załóżmy, że jedno z pól można wpisać w formularzu. Wtedy kod wygląda tak:

  1. <?php
  2.    $naglowki = "From: moj@mail.plr\nReply-To: '.$_POST['reply_to'].'r\nContent-type: text/plain; charset=iso-8859-2";
  3.  
  4.    if(mail('jan_testowy@serwer.pl', 'Witaj', 'Oto test funkcji mail', $naglowki))
  5.    {
  6.       echo 'Wiadomość została wysłana';
  7.    }
  8. ?>


I teraz wyobraź sobie, że za pomocą durnego programu telnet przygotowuję takie żądanie HTTP, że pole "reply_to" ma następującą wartość:

Kod
foo@bar
From: Miecio <mieco.jest.gupi@costam.pl>


Ostatecznie zmienna $naglowki będzie zawierać:

Kod
From: moj@mail.pl
Reply-To: foo@bar
From: Miecio <mieco.jest.gupi@costam.pl>
Content-type: text/plain; charset=iso-8859-2


Jak widzisz, do listy nagłówków udało mi się dopisać nagłówek, którego kod PHP w ogóle nie przewiduje, właśnie z powodu tego, że nie dodaliśmy żadnego kodu, który z $_POST['reply_to] usunąłby znaki nowej linii. Przykładowe zabezpieczenie:

  1. <?php
  2. $naglowki = "From: moj@mail.plr\nReply-To: '.strtr($_POST['reply_to'], "r&#092;n", 'rn').'r\nContent-type: text/plain; charset=iso-8859-2";
  3. ?>


Wysyłając identyczne zapytanie do tego samego kodu, dostalibyśmy następującą listę nagłówków:

Kod
From: moj@mail.pl
Reply-To: foo@barrnFrom: Miecio <mieco.jest.gupi@costam.pl>
Content-type: text/plain; charset=iso-8859-2


Tym samym atakujący nie ma już możliwości dodania do maila nagłówka, którego nie chcemy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.