Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]nagłówki teoria
plamaster
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 16.11.2008

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


Otoż na jednej stronie o phph znalazlem taka oto porade

(IMG:http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Nuvola_apps_important.svg/40px-Nuvola_apps_important.svg.png) 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
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Chyba chodzi o nagłówki mailowe.

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


Bez filtracji można dopisać cokolwiek - nowych adresatów, etc.

Ten post edytował erix 1.12.2008, 16:58:27
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


http://www.google.com/search?hl=en&saf...amp;btnG=Search
Go to the top of the page
+Quote Post
Zyx
post
Post #4





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Przykład jest prosty. Weźmy skrypt z tego kursu (btw. miło, że ktoś go czytuje (IMG:http://forum.php.pl/style_emoticons/default/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.
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: 23.08.2025 - 14:58