Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> mail(), minimalizacja ryzyka spamu
soska66
post 30.01.2009, 16:52:31
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


W jaki sposob zminimalizowac ryzyko wrzucania wysylanej przez mail() poczty do spamu przez serwery pocztowe

Czy zalezy to wylacznie od naglowkow? W tym momencie mam wprowadzone nastepujace naglowki

  1. <?php
  2. $mailHeaders .= "From: info@$website <info@$website>r\n";
  3.        $mailHeaders .= "Reply-To: Organizacja <info@$website>r\n";
  4.        $mailHeaders .= "Return-Path: Organizacja  <info@$website>r\n";
  5.        $mailHeaders .= "Organization: Organizacja  r\n";
  6.        $mailHeaders .= "Content-Type: text/plainr\n";
  7. ?>


Dorzuce dodatkowe pytanie, co by watku nie tworzyc

Korzystam z systemu logowania opartego na ciasteczkach, ktore przechowuje numer sesji (generowany) i numer IP usera. Klient doniosl mi, ze w obrebie sieci w jego firmie, gdy loguje sie do strony na swoim komputerze, dostep do niej uzyskuja wszystkie inne komputery w sieci (wygenerowane ciasteczko jest odbierane przez wszystkie komputery). Nie potrafi okreslic w jaki sposob zbudowana jest siec. Mnie sie wydaje, ze uzywaja jednego numeru IP i proxy, ktore przechowuje ciacha.

Wiem, ze instalacja certa SSL rozwiazalaby problem, ale czy jest jakies inne wyjscie z tej sytuacji?

Ten post edytował soska66 30.01.2009, 18:02:48
Go to the top of the page
+Quote Post
blooregard
post 30.01.2009, 22:44:56
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Zakładam, że zmienne, które wstawiasz do zmiennych odpowiedzialnych za treść i temat maila wstawiasz z jakiegoś formularza, tak?
Więc sprawdzaj, jak przychodzą dane POST-em, zmienną serwera HTTP_REFFERER, czy pochodzą one z serwera, na którym leży Twoja witryna. Jeśli nie, nie wysyłasz.
W ten sposób "odsiejesz" skrypty postawione na innych serwerach i wysyłające przez Twój skrypt spam.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
em1X
post 30.01.2009, 23:07:56
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


wstaw ukryte pole tekstowe do formularza i jeżeli będzie przy wysyłaniu wypełnione, znaczy, że jest to bot.


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
soska66
post 2.02.2009, 13:35:26
Post #4





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


hehe... zle zrozumieliscie.... byc moze to ja niejasno wyjasnilem smile.gif

Nie chodzi mi o boty... nie chodzi tez o puste maile. Chodzi o maile wysylane przez uzytkownika, za pomoca kodu php (np w czasie rejestracji)

Czyli gosc wypelnia sobie forme rejestracyjna i wciska 'Rejestruj'. Wtedy zostaje odpalona funkcja, ktora sprawdza dane, wprowadza je do bazy i jesli sa poprawne wysyla maila potwierdzajacego (np z linkiem aktywujacym). Podane przeze mnie naglowki to wlasnie naglowki tego maila potwierdzajacego

Chodzi mi o to, ze np. yahoo, widzi owe maile jakos spam, i wrzuce je do junk'owego folderu. Moje pytanie brzmi, co zrobic aby yahoo ( i inne ) nie odczytywal takiego maila jako spam... inaczej... jak zmniejszyc ryzyko potraktowania takiego maila jako spam smile.gif

mam nadzieje, ze teraz lepiej wyjasnilem
Go to the top of the page
+Quote Post
Pilsener
post 2.02.2009, 14:07:48
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


- sprawdź, czy adres, ip, domena itp. z której wysyłasz maile nie są na czarnej liście
- zadbaj o maksymalną poprawność składni
- nie wysyłaj maili masowo i unikaj słów typu "wiahra"
- nie używaj funkcji mail - użyj socketów, albo programu do wysyłania poczty

Jeżeli nie masz własnego serwera, lub ip/domeny to jest duża szansa na to, że jesteś klasyfikowany jako spamer czy chcesz tego czy nie.
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 10:06:41
Post #6





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Strona jest na share-hostingu, ale z wlasna domena.

Skladnia wydaje sie byc poprawna, slow typu 'wiahra' naturalnie w tresci nie ma

wroce do swojego drugiego pytania bo sytuacja wciaz nie jest rozwiazana

Przypomne tresc

Korzystam z systemu logowania opartego na ciasteczkach, ktore przechowuje numer sesji (generowany) i numer IP usera. Klient doniosl mi, ze w obrebie sieci w jego firmie, gdy loguje sie do strony na swoim komputerze, dostep do niej uzyskuja wszystkie inne komputery w sieci (wygenerowane ciasteczko jest odbierane przez wszystkie komputery). Nie potrafi okreslic w jaki sposob zbudowana jest siec. Mnie sie wydaje, ze uzywaja jednego numeru IP i proxy, ktore przechowuje ciacha.

Wiem, ze instalacja certa SSL rozwiazalaby problem, ale czy jest jakies inne wyjscie z tej sytuacji?

dzieki za pomoc
Go to the top of the page
+Quote Post
Kocurro
post 17.04.2009, 11:44:56
Post #7





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Przede wszystkim (w kolejności ważności):

- dobrze skonfigurowana domena,
- dobrze skonfigurowany serwer,
- nie wysyłanie maili na nieistniejące adresy,
- łapanie odbitych maili i zapisywanie w bazie, że taki mail odbija by więcej na niego nie wysyłać żadnych maili,
- nie wysyłanie zbyt wielkich ilości maili na dane domeny
- treść e-maili oraz nagłówków
- monitorowanie list spamowych i szybkie interweniowanie jak zostanie się dodanym

To powinno wystarczyć.

Pozdrawiam,
Łukasz
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 12:04:06
Post #8





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


dzieki za info odnosnie mailowania aczkolwiek teraz bardziej potrzebne mi sa odpowiedzi na drugie pytanie (problem z ciachami w sieci lokalnej)
Go to the top of the page
+Quote Post
Kocurro
post 17.04.2009, 12:21:21
Post #9





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Albo

1) Nic z tym nie zrobisz - błąd leży w konfiguracji jego sieci. Jest ona zrobiona całkowicie źle i niebezpiecznie. Dziwne, że jeszcze nie stało się nic co naraziłoby go na koszty.

Niech lepiej zainwestuje w kogoś kto naprawi sieć

Albo

2) Za każdym razem generujesz taki sam identyfikator sesji smile.gif

Innych opcji nie ma.

Pozdrawiam serdecznie,
Łukasz
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 12:53:32
Post #10





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


po krotce wyjasnie jak dziala logowanie w przypadku tego kodu. Moze uda ci sie wywnioskowac zrodlo problemu (jesli jest ono w kodzie)

1. Gdy uzytkownik loguje sie do systemu, a login i haslo zostaje potwierdzone:
a) zostaje wygenerowany 32 string bedacy ID dla sesji ($cookie) oraz pobrany ip uzytkownika ($client_addr)
b ) nastepuje zapis do bazy danych

  1. UPDATE user SET cookie = '$cookie', ip = '$client_addr' (plus kilka innych wartosci, jak czas logowania itp) WHERE id = $userid


c) zostaje utworzone ciacho z wartoscia ID sesji

  1. <?php
  2. setcookie("token", $cookie, time() + 3600, "/");
  3. ?>


2. Gdy uzytkownik jest zalogowany, to przy kazdorazowym odswiezeniu strony
a) pobrany zostaje ID sesji i adres uzytkownika
  1. <?php
  2. $token = $_COOKIE["token"];
  3. $clientIP = $_SERVER["REMOTE_ADDR"];
  4. ?>


b ) jesli $token istnieje
b1) funkcja pobiera id uzytkownika w oparciu o $token (id sesji)

  1. SELECT id FROM user WHERE cookie = '$token'


b2) jesli mysql zwroci id uzytkownika ($userId), kolejna funkcja autoryzuje go (funkcja wykonuje tez kilka innych zadan, nie istotnych dla problem

  1. SELECT id FROM user WHERE cookie = '$token' AND ip_addr = '$clientIP '


b3) jesli funkcja zwroci Id, tworzona jest klasa User($userId) ktora bierze udzial we wszystkich operacjach na uzytkowniku w dalszej czesci dzialania strony (podstrony)

c) wylogowanie
  1. UPDATE user SET cookie = NULL WHERE cookie = '$token' AND ip_addr = '$clientIP'

  1. <?php
  2. setcookie("token", "");
  3. ?>


Jedyny sposob jaki mi przychodzi do glowy zeby ciacho zostalo przejete przez sasiedni komputer w sieci, to wspolne ciacho dla wszystkich komputerow w sieci oraz wspolna wartosc $_SERVER["REMOTE_ADDR"]

Musze dac znac klientowi co moze zrobic on lub co moge zrobic ja zeby naprawic problem. Masz (macie) jakies pomysly? Jesli klient nie bedzie mogl zmienic konfiguracji sieci (co jest wielce prawdopodobne) czy SSL zalatwi sprawe?

Dodam, ze w oparciu o ten sam schemat logowania od 3 lat dziala kilkanascie innych stron. I jest to pierwszy przypadek zgloszenia takiego problemu

Ten post edytował soska66 17.04.2009, 13:00:55
Go to the top of the page
+Quote Post
Kocurro
post 17.04.2009, 12:56:08
Post #11





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Ojojojoj - zmień to natychmiast bo od groma tutaj potencjalnych dziur.
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 13:06:57
Post #12





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Cytat(Kocurro @ 17.04.2009, 11:56:08 ) *
Ojojojoj - zmień to natychmiast bo od groma tutaj potencjalnych dziur.


Podpowiedz zatem jakich i jak moga zostac wykorzystane. Kod powstal zanim dolaczylem do 'zespolu' a ze napisal go doswiadczony programista (jest gosc dobry naprawde, byc moze ma braki smile.gif ) nigdy nie interesowalem sie ewentualnymi zmianami. Jak juz wspomnialem, dziala na nim kilkanascie stron i nigdy nie bylo problemow

Inna sprawa... z potencjalnymi dziurami czy bez.... jak to sie ma do opisywanego problemu z siecia tego goscia?

Ten post edytował soska66 17.04.2009, 13:11:46
Go to the top of the page
+Quote Post
guitarnet.pl
post 17.04.2009, 15:42:47
Post #13





Grupa: Zarejestrowani
Postów: 74
Pomógł: 4
Dołączył: 7.03.2008

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


jesli ten sam skrypt wysylajacy maile ktory wkleiles dziala na tych kilkunastu serwisach to radze wyslac "specjaliste" na urlop bo ma duuzo szczescia do tej pory..
moim zdaniem najczesciej ignorowanyproblem zwiazany z wysylaniem maili:
http://phpsense.com/php/php-mail.html

czestym problemem traktowania przesylek jako spam np przez gmaila to nieprawidlowy naglowek co mozesz uniknac korzystajac z jakiejs sprawdzonej klasy mailowej np http://www.phpguru.org/static/htmlMimeMail5.html

sprawdz tez czy serwer z ktorego wysylasz maile ma poprawne wpisy MX i SPF w DNS
w moim przypadku maile wysylane byly z domeny aaa.com (IP111) ale MX dla tej domeny byl na IP222 i wszystkie maile z z domeny aaa.com lecialy do spamu,zalozylem osobna domene bbb.com na IP111 i ustawilem MX na IP111 po tej zmianie o ile yahoo nie wrzucal przesylek do spamu gmail dalej markowal jako spam, po dopisaniu rekordu SPF gmail nie kwalifikuje przesylek jako spam, ani jeden IPani domena nie znajdowaly sie nigdy na zadnym RBL


--------------------
Skrypty php, ajax, javascript
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 15:57:54
Post #14





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


dzieki za info na temat maili... rzuce okiem na zalinkowane materialy plus pobawie sie ta klasa mailowa

Nie wklejalem zadnego skryptu mailowego smile.gif Ino naglowki same

Wrocmy do kwestii tych ciasteczek ... z mailami juz mniej wiecej wiem co robic... natomiast nadal jestem w martwym punkcie z tym problemem sesji w sieci lokalnej

Podstawowe pytanie to czy wklejony przeze mnie schemat logowania, niezaleznie od tego czy jest dziurawy czy nie, moze miec wplyw na opisywany problem. Czy te 'dziury' maja z problemem bezposredni (albo nawet posredni) zwiazek

Jak juz sie z tym uporamy, wtedy poprosze ladnie Kocurro o streszczenie, w miare mozliwosci, jakie 'potencjalne' dziury niesie ze soba taki system logowania smile.gif
Go to the top of the page
+Quote Post
pyro
post 17.04.2009, 16:09:45
Post #15





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


token tutaj nie jest tokenem (nie wprowadza praktycznie systemu tokenu) i jest tu podatnośc na SQL Injection


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 16:54:53
Post #16





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Wszystkie zmienne (i POST i COOKIE i SERVER) sa filtrowane przy kazdorazowym pobieraniu. Ino nie wstawilem tych funkcji do przykladow bo po co smile.gif

Sluchajta... wciaz nie dostaje odpowiedzi w kwestii problemu z ciachami w sieci lokalnej. A to jest dla mnie najwazniejsze w tej chwili. Czy powyzszy kod logowania, chocby nie wiem jak byl zrypany, moze powodowac skutki, ktore opisalem na poczatku watku (i powtorzylem w pierwszym poscie z dzis). Wylacznie o to mi narazie chodzi... o zwiazek kodu z problemem... powiedzmy, ze nie interesuja mnie kwestie dziur, filtrowania, wstrzykiwania itp do poki, do poty nie stanowia istoty TEGO problemu
Go to the top of the page
+Quote Post
erix
post 17.04.2009, 17:06:10
Post #17





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




Cytat
Klient doniosl mi, ze w obrebie sieci w jego firmie, gdy loguje sie do strony na swoim komputerze, dostep do niej uzyskuja wszystkie inne komputery w sieci (wygenerowane ciasteczko jest odbierane przez wszystkie komputery). Nie potrafi okreslic w jaki sposob zbudowana jest siec. Mnie sie wydaje, ze uzywaja jednego numeru IP i proxy, ktore przechowuje ciacha.

Jeśli są za NAT-em, to sobie odpowiedziałeś - wspólne IP. Możesz spróbować sprawdzać nagłówek X-Forwarded-for, ale często go nie ma. Nie da się po IP wyszczególnić komputera z danej sieci, jeśli bramka tego nie dokleja do żądania HTTP.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 17:29:15
Post #18





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Cytat(erix @ 17.04.2009, 16:06:10 ) *
Jeśli są za NAT-em, to sobie odpowiedziałeś - wspólne IP. Możesz spróbować sprawdzać nagłówek X-Forwarded-for, ale często go nie ma. Nie da się po IP wyszczególnić komputera z danej sieci, jeśli bramka tego nie dokleja do żądania HTTP.


No ale wciaz sa ciacha, ktore powinny byc przechowywane w 'pamieci' przegladarki. Czyzby faktycznie trzymaja ciacha na sewerze? Jaki w tym sens?
W kodzie najpierw sprawdzana jest wartosc COOKIE, ktora dla kazdego nowego uzytkownika jest inna (generowana przy logowaniu)... dopiero gdy to ciacho jest znalezione system porownuje adres IP...

Ten post edytował soska66 17.04.2009, 17:30:31
Go to the top of the page
+Quote Post
erix
post 17.04.2009, 17:30:41
Post #19





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




Trzeba by było się dowiedzieć, jakie proxy wykorzystują. Ale powinny wystarczyć odpowiednie nagłówki blokujące cache'owane i zmiana sprawdzania adresu IP, bo chyba o czymś wspomniałem. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
soska66
post 17.04.2009, 17:58:52
Post #20





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Cytat(erix @ 17.04.2009, 16:30:41 ) *
Trzeba by było się dowiedzieć, jakie proxy wykorzystują. Ale powinny wystarczyć odpowiednie nagłówki blokujące cache'owane i zmiana sprawdzania adresu IP, bo chyba o czymś wspomniałem. winksmiley.jpg


Rozumiem kwestie wspolnego IP. Natomiat jesli nie ma naglowka X-Forwarded-for, co jak sam wspomnialem jest czestym zjawiskiem, to w zasadzie sprawdzania IP nalezaloby sie wogole pozbyc.
Piszac o odpowiednich naglowkach blokujacych cache'owanie masz na mysli po prostu wpis META dla calej strony?

Co w tej sytuacji mozna zrobic.. oprzec logowanie na php'owkich sesjach?
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:00