Slizzzer
Erfahrenes Mitglied
Hallo Forum!
Bedauerlicherweise werden Mail-Scripts ja immer wieder von Spamern missbraucht. Mir ist es auch 2 x passiert, dass man meinen Account gesperrt hat, weil von dem Mailscript Massenmails versandt wurden. Trotz aller Absicherung nach aktuellem Standard hab ich mir überlegt, was man noch tun kann.
Folge Idee, die auch im Rohformat schon funktioniert, kam dabei raus:
Das Script, welches die Mails verschickt erhält einen Namen bestehend aus dem Timestamp.
Jetzt wird per Formel bei jedem Seitenaufruf geprüft, ob der Scriptname seine "Haltbarkeit" überschritten hat. Ist dies so, wird die Datei auf den aktuellen Timestamp umbenannt.
Damit die Verlinkung zu diesem Script auch funktioniert, wird der aktuelle Dateiname in einer Session-Variable gespeichert.
Was haltet Ihr von der Idee? Ist da noch ein Denkfehler drin? Ist sowas leicht auszuhebeln?
Hier nochmal der erste hingeschmierte Code ;o) Ist sicherlich noch viel dran zu schrauben.
Gruß
Ralf
Bedauerlicherweise werden Mail-Scripts ja immer wieder von Spamern missbraucht. Mir ist es auch 2 x passiert, dass man meinen Account gesperrt hat, weil von dem Mailscript Massenmails versandt wurden. Trotz aller Absicherung nach aktuellem Standard hab ich mir überlegt, was man noch tun kann.
Folge Idee, die auch im Rohformat schon funktioniert, kam dabei raus:
Das Script, welches die Mails verschickt erhält einen Namen bestehend aus dem Timestamp.
Jetzt wird per Formel bei jedem Seitenaufruf geprüft, ob der Scriptname seine "Haltbarkeit" überschritten hat. Ist dies so, wird die Datei auf den aktuellen Timestamp umbenannt.
Damit die Verlinkung zu diesem Script auch funktioniert, wird der aktuelle Dateiname in einer Session-Variable gespeichert.
Was haltet Ihr von der Idee? Ist da noch ein Denkfehler drin? Ist sowas leicht auszuhebeln?
Hier nochmal der erste hingeschmierte Code ;o) Ist sicherlich noch viel dran zu schrauben.
Gruß
Ralf
PHP:
<?php
session_start();
//Maximales Alter des Dateinamen festlegen (in Sekunden)
$maxdiff = 86400;
/*wenn die Variable datei_name noch nicht gesetzt wurde,
tue es und setze den Wert auf den aktuellen timestamp*/
if(!isset($datei_name)){
$datei_name = time();
session_register("datei_name");
}
//aktuellen Scriptnamen lesen
$verz=opendir ('script');
while ($file = readdir ($verz)) {
if($file != "." && $file != "..")
$datei_name=$file;
}
closedir($verz);
//pruefen, ob dateiname aelter als 1 Tag
$a = time();
$differenz = $a-$datei_name;
//wenn dateiname aelter als 1 Tag, dann Namen aendern
if($differenz>$maxdiff){
$datei_name=time();
$verz=opendir ('script');
while ($file = readdir ($verz)) {
if($file != "." && $file != "..")
@rename("script/$file","script/$datei_name.php");
}
closedir($verz);
}
?>
<form action='<? echo "script/$datei_name"; ?>' method='post'>
...