Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> spam wysyłany poprzez formularz kontaktowy, zła deklaracja i inicjalizacja zmiennej w skrypcie
mpps
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


Witam,
mam następujący problem:

Przygotowałem formularz kontaktowy, z którego pobierane są dane do zmiennych w celu przesłania wiadomości:

  1. <?php
  2. $site_email = "jakis@adres.email.net";
  3.  
  4. $header = "From: "adres wysylkowy" <".$site_email.">rn";
  5.  
  6. $header_other = "From: ".$osoba." <".$email.">rn"; //dane do zmiennych pobierane z formularza
  7.  
  8. if($send=="ok"){
  9. mail("$email",
  10. "podziekowania!",
  11. "tekst podziekowania",
  12. "$header");
  13.  
  14. mail("$site_email",
  15. "powiadomienie o kontakcie",
  16. "osoba: $osoba
  17. email: $email",
  18. "$header_other");
  19. }
  20. ?>


Problem polega na tym, iż okazało się, że formularz umożliwia wysyłanie spamu.
Mam informację, że błąd tkwi w złej deklaracji i inicjalizacji zmiennej header_other.
Jakie zmiany powinienem poczynić, aby skrypt stał się bezpieczny?

Formularz jest wysyłany metodą:
  1. <?php
  2. print('<FORM METHOD="POST" ACTION="index.php?id='.$id.'&send=ok" NAME="contact">');
  3. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cadavre
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Podobna rzecz jest tutaj: Temat: klasa iqCaptcha 02

Też miewam spore problemy ze spamem - mam trzy podstawowe filtry: jeden sprawdza czy są linki w wysyłanej wiadomości (może dodawać tylko linki [safelink]url[/safelink]), drugi i trzeci zależne są od usera bądź czegoś "ponad" - są to bowiem ban na IP (mało skuteczne ze względu na zmienność IP, są jednak roboty na stałych IP) oraz filtr słów - ten uaktualniany jest moim autorskim skryptem, który cronem odpalany jest raz na tydzień - wszystkie wiadomości wysyłane z formularzy zapisywane są w bazie danych, następnie z panelu administracyjnego wybieram te, które są spamem; przepuszczam je przez filtr porównujący je między sobą i wybieram pierwszych dwadzieścia zwrotów, które wydają się być najbardziej spamerskie (to wszystko robi automat), zapisuje je do bazy zwrotów, następnie modowie analizują te zwroty i ewentualnie błędne wyrzucają. Skrypt, przez który przepuszczam formularze porównuje wprowadzone dane z bazą zwrotów.

EDIT: Istnieje naturalnie tzw. "biała lista" zwrotów, które są wykluczane z porównań - typu "i", "a", "oraz", "patrz"...

Ten post edytował cadavre 14.12.2006, 21:54:14
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 12:37