SELFPHP: Version 5.7.9 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 

CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 


Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 31.12.2005, 17:07:17
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
bweichel befindet sich auf einem aufstrebenden Ast
Spam durch Mailversand über Formular

Hallo,

es werden Spamnachrichten über ein Mailformular auf meiner Internetseite versendet. Ich bin auch schon bei mehreren Blacklists gelistet.

Der Fehler lag offensichtlich in der "Absenderzeile". Man konnte dort ohne weiteres "To:" und "Bcc:" Blöcke einfügen.

Ich habe mir nun eine Funktion geschrieben die:

[1] den Referer überprüft
[2] den Absender auf Zeilenumbrüche überprüft

Ich glaube dass das alles war, um dem Spam entgegen zu wirken. Aber ich möchte sicherheitshalber nochmal andere Profis über mein Script schauen lassen um auch wirklich keine Sicherheitslücke mehr zu hinterlassen.

Also hier mein Script:
PHP-Code:
<?php
function mailsend($empfaenger,$betreff,$nachricht,$absender) {
    
$send 0;

    
$hosts = array();
    
// hier den referer eintragen
    
$host[] = "http://192.168.0.2";
    
$host[] = "www.DeineDomainAdresse.de";

    
$referer $_SERVER['HTTP_REFERER'];
    
$remote_addr $_SERVER['REMOTE_ADDR'];

    if(
$referer != "") {
        if(!(
ereg("\n"$absender) OR ereg("\r"$absender))) {
            foreach(
$host as $key => $val) {
                
#print $key . " " . $val . " " . $referer . "<br>";
        
                
if(ereg("$val"$referer)) {
                    
$send 1;
                    
#print $referer . " in $val gefunden! <br>";
                    
break;
                }
                else {
                    
#print $referer . " in $val nicht gefunden! <br>";
                
}
            }
        }

        if(
$send == 1) {
            
$headers 'From:' $absender "\n";
            
$headers.= 'Reply-To:' $absender "\n";
            
$headers.= 'X-Mailer: PHP/' phpversion() . "\n";
            
$headers.= 'X-Sender-IP: ' $remote_addr "\n";
            
$headers.= "Content-type: text/html\n";

            
mail($empfaenger,$betreff,$nachricht,$headers);
            
            return 
$send;
        }
        else {
            
$headers "From: DeinName <Deine@eMailAdresse.tld>\n";
            
$headers.= "Reply-To: Deine@eMailAdresse.tld\n";
            
$headers.= 'X-Mailer: PHP/' phpversion() . "\n";
            
$headers.= 'X-Sender-IP: ' $remote_addr "\n";
            
$headers.= "Content-type: text/html\n";
        
            
$nachricht.= "<br><br>Host: $referer<br>IP: $remote_addr<br><br>$absender";

            
mail("Deine@eMailAdresse.tld","SERVER: Spamverdacht bei Mailversand",$nachricht,$headers);
            
            return 
$send;
        }
    }
    else {
        return 
$send;
    }

    
#print "SEND: " . $send;
}
?>
Mit Zitat antworten
  #2  
Alt 01.01.2006, 06:09:04
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 65
Beiträge: 3.887
meikel befindet sich auf einem aufstrebenden Ast
AW: Spam durch Mailversand über Formular

Zitat:
Zitat von bweichel
es werden Spamnachrichten über ein Mailformular auf meiner Internetseite versendet. Ich bin auch schon bei mehreren Blacklists gelistet.

Der Fehler lag offensichtlich in der "Absenderzeile". Man konnte dort ohne weiteres "To:" und "Bcc:" Blöcke einfügen.
Im Betreff kann man das immer noch. Auch das Subject gehört zum Header.

Geändert von meikel (01.01.2006 um 06:10:36 Uhr)
Mit Zitat antworten
  #3  
Alt 01.01.2006, 13:47:36
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Beiträge: 352
Jürg befindet sich auf einem aufstrebenden Ast
Jürg eine Nachricht über Skype™ schicken
AW: Spam durch Mailversand über Formular

Ich wurde mit dem selben Problem bei mehreren URLs konfrontiert.
Nun habe ich eine Lösung die auch time() verwendet.
Zumindest funktioniert das Ganze so gut, dass kein Spam mehr erfolgt.
Script
__________________
www.zudila.ch
Mit Zitat antworten
  #4  
Alt 04.01.2006, 10:39:54
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
bweichel befindet sich auf einem aufstrebenden Ast
AW: Spam durch Mailversand über Formular

ja, also mein beispiel (herausfiltern der \n und \r) funktioniert nicht. es hat wieder jemand geschafft spam zu versenden. jetzt über den bcc. ich werde nun mal time() verwenden. die zahlen mit denen du time() multipliziert bzw. dividierst sind zufallszahlen, oder? damit keine hinter die kombinations des code`s kommt, oder habe ich da was falsch verstanden?
Mit Zitat antworten
  #5  
Alt 04.01.2006, 11:26:25
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Beiträge: 352
Jürg befindet sich auf einem aufstrebenden Ast
Jürg eine Nachricht über Skype™ schicken
AW: Spam durch Mailversand über Formular

Das mit den Zufallszahlen ist so, aber Primzahlen, dann wird es etwas komplizierter.
Beachte aber auch, dass ich das '@' und Tags konsequent entferne.
__________________
www.zudila.ch
Mit Zitat antworten
  #6  
Alt 04.01.2006, 22:25:31
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 65
Beiträge: 3.887
meikel befindet sich auf einem aufstrebenden Ast
AW: Spam durch Mailversand über Formular

Zitat:
Zitat von bweichel
ja, also mein beispiel (herausfiltern der \n und \r) funktioniert nicht. es hat wieder jemand geschafft spam zu versenden.
Warum liest Du nicht meinen Text?!

Neben der Zieladresse gehört auch der Betreff mit zum Header, verdammt noch mal!

Du sollst nicht "herausfiltern" sondern schlicht und einfach "erkennen" und den Versand abbrechen.

Wer es schafft, in Adresse u/o Subjekt einen Zeilenumbruch einzubauen (im Formular nicht möglich aber per Script keine Hürde), der will Dein Script für SPAM ausnutzen.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular Problem (session?) dersupergrobi PHP für Fortgeschrittene und Experten 2 25.07.2004 14:27:16
mittels Formular 2 Skripte aufrufen Tim PHP Grundlagen 2 21.06.2003 16:11:57
Variablen an Formular, von Formular plus neue Variablen an Dokument Alf PHP für Fortgeschrittene und Experten 2 01.12.2002 17:10:09
HTML Formular in PHP umwandeln mikeingo PHP für Fortgeschrittene und Experten 3 03.11.2002 10:09:20
update formular problem Silencer PHP für Fortgeschrittene und Experten 1 14.10.2002 08:29:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:00:28 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt