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

SELFPHP


Professional CronJob-Service

Suche



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 ::

Das Zend Framework

Das Zend Framework 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 > Off Topic Area
Hilfe Community Kalender Heutige Beiträge Suchen

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.12.2004, 21:35:39
Wolfgagn Uhr Wolfgagn Uhr ist offline
Anfänger
 
Registriert seit: Jan 2004
Beiträge: 34
Mißbrauchmöglichkeiten bei Scripten mit E-Mail-Bestätigung ...

Guten Tag

Also ich habe mal folgende theoretische Konstruktuion. Jemand füllt irgendwo ein Kontaktforumular aus und bekommt eine Bestätigungsmail an SEINE-E-Mail-Adresse, die er selbst in das Kontaktformular eingegeben hat. - Sozusagen als Bestätigung.

So weit so gut.

Nun kommt irgend ein Script-Kiddi an, füllt mit einer falschen Adresse dieses Formular aus. Er schreibt irgend einen Unfug rein und führt den ensprechenden Seitenaufruf 100 mal aus.

Dann werden 100 Aufrufe an irgend jemanden geschickt dessen Adresse da eingetzt wurde.

Ist das etwas worüber man sich Sorgen machen muss, oder kann man das vergessen?

Gruß
Wolfgang
Mit Zitat antworten
  #2  
Alt 29.12.2004, 22:20:06
Corvin Corvin ist offline
Junior Member
 
Registriert seit: May 2004
Alter: 54
Beiträge: 350
Naja... man kann sich es auch einfacher machen... 5 Zeilen PHP-Code reichen schon aus um einen "Mail-Bomber" zu schreiben, der in ein paar Minuten ein paar tausend Mails an eine Email Adresse schickt.

Zitat:
Ist das etwas worüber man sich Sorgen machen muss, oder kann man das vergessen?
Alle Mails markieren (das geschieht in 1-2 Sekunden) und dann löschen klicken (1 Sekunde). Fazit: Nein, da muss man sich keine Sorgen machen ;)
Mit Zitat antworten
  #3  
Alt 29.12.2004, 22:33:46
Wolfgagn Uhr Wolfgagn Uhr ist offline
Anfänger
 
Registriert seit: Jan 2004
Beiträge: 34
Danke das stimmt auch wieder. ...

Wolfgang
Mit Zitat antworten
  #4  
Alt 30.12.2004, 10:04:06
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Du kannst natürlich auch beim Abschicken die E-Mailadresse mit der aktuellen Zeit speichern und beim nächsten Versand überprüfen, ob an die Mail in den (zum Beispiel) letzten 24 Stunden gesendet wurde.
Mit Zitat antworten
  #5  
Alt 09.01.2005, 11:03:31
kitanai kitanai ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 4
Auch ich habe ein Mailformular zum versenden von Anfragen. Man geht auf kontakt.php und bekommt was nettes zum Ausfüllen. Beim Absenden wird action="/kontakt.php" wieder aufgerufen, die Daten validiert und dann per Mail verschickt.

Sicher ist ein Mißbrauch recht unwahrscheinlich, aber was MÜSSTE ich tun, um es dennoch abzusichern?

Habe HTTP_REFERRER benutzt, aber das klappt ja leider nicht immer, und dann ist es für den User ärgerlich:

PHP-Code:
$vars["ref"] = explode("/"substr(getenv("HTTP_REFERER"), 7));
if(
$vars["ref"][0] != getenv("HTTP_HOST")) {
    echo 
"<p><strong>Bad request!</strong></p>";
} else ... 
Was kann man da machen???

Geändert von kitanai (09.01.2005 um 11:21:33 Uhr)
Mit Zitat antworten
  #6  
Alt 09.01.2005, 12:57:59
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Um abzusichern, dass das Formular tatsächlich nur von deiner Seite aus abgeschickt wird, könntest du beim Aufrufen des Formulars einen bestimmten Wert in einer Session abspeichern und vor der Verarbeitung des Formulars auf diesen überprüfen.
Mit Zitat antworten
  #7  
Alt 09.01.2005, 15:06:20
kitanai kitanai ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 4
Hm, ok. Problem ist nur, dass diese Seite ja auch wieder aufgerufen wird, um zu verschicken.

Verstehe ich das richtig:

- Beim ersten Aufruf Session starten und Wert setzen
- Beim Abschicken testen, ob Session und Wert existieren, beim erfolgreichen Versenden Session killen

Bin nur gerade etwas verwirrt, wie ich darauf teste, ob der Seitenaufruf jetzt das erste Mal geschieht, oder ob es schon das Absenden ist...
Mit Zitat antworten
  #8  
Alt 09.01.2005, 15:17:40
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Alter: 66
Beiträge: 352
Jürg eine Nachricht über Skype™ schicken
Ich mache es so:
Das Formular wird ausgefüllt und wenn alle PHP-Prüfungen erfolgreich sind abgesendet und das Formular geleert.
So müsste also das Formular immer erneut richtig ausgefüllt werden. Das bremst das Versenden massiv.
PS: Eine Zeitsperre würde ich nicht machen, denn zu oft werden Formulare nicht richtig ausgefüllt und nochmals, nun oft richtiger, versendet.
Ein Beispiel unter: Feedback
__________________
www.zudila.ch
Mit Zitat antworten
  #9  
Alt 09.01.2005, 15:31:14
kitanai kitanai ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 4
Ok, klingt gut. So ähnlich mache ich das auch schon. Habe aber zwei Fragen dazu:

1) selbst wenn alle Feldvariablen durch das Skript geleerte werden: wenn ich im Browser nach erfolgreichem Versand der Mail auf Reload klicke, dann schickt er doch alle Daten noch einmal und die Mail wird ein zweites/drittes/... mal versandt, oder?

2) wird hier denn verhindert, dass ich von einer anderen Seite oder über ein Skript Daten, die das Formular imitieren, schicken kann?

Danke für die Hilfe!
Mit Zitat antworten
  #10  
Alt 09.01.2005, 17:08:11
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Leite einfach dem Verarbeiten des Formulars mit header() zum Formular weiter:
PHP-Code:
<?php
    header
('Location: formular.php');
?>
Zitat:
2) wird hier denn verhindert, dass ich von einer anderen Seite oder über ein Skript Daten, die das Formular imitieren, schicken kann?
Das kannst du damit nicht verhindern. Dafür bräuchtest du eine Lösung mit zum Beispiel Sessions, wie ich es oben beschrieben habe. Grob gesehen, könnte das so aussehen:
PHP-Code:
<?php
    session_start
();
    if(isset(
$_POST['action']) && $_POST['action'] == 'send' && isset($_SESSION['var']) && $_SESSION['var'] == 'irgendwas') {
        
$test true;
        
//  das Formular wurde losgeschickt und kann verarbeitet werden
        //  auf korrekte Eingaben überprüfen, bei falschen Eingaben $test = false setzen

        
if($test != false) {
            
//  Eintragen
            
header('Location: form.php');
        }
    } elseif(!isset(
$_POST['action']) || $_POST['action'] != 'send' || $test == false) {
        
//  Formular zeigen
        
$_SESSION['var'] = 'irgendwas';
    }
?>
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:32:47 Uhr.


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


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