Avatar billede Asky Seniormester
09. november 2021 - 16:21 Der er 7 kommentarer og
1 løsning

Dynamisk hjemmeside

Har nu oplevet et forsøg fra en hacker på at sende en SMTP- mail fra response-delen af en dynamisk hjemmeside. Mailen er af typen nn@domæne.dk til  nn@domæne.dk. Mailen er heldigvis afvist af webhotellets spamfilter. Der er brugt samme teknik, som den dynamiske hjemmeside selv anvender når der sendes mails som svar på en bestilling.. Mailen indeholder den sædvanlige trussel om porno-kikkeri og krav om dusær i bitcoins.
Hører gerne fra andre, der kender til dette fænomen.
Avatar billede ejvindh Guru
10. november 2021 - 15:47 #1
Hvad vil du gerne høre noget om? Overordnet set er det ganske vanskeligt at undgå den slags. Særligt hvis formen er sat op gennem et udbredt CMS-system, eftersom spambots'ene ofte er tilpasset til netop disse.

Jeg har i visse sammenhænge haft held med at reducere antallet af sådanne, ved at indbygge et eget "hack" i koden, i form af at tilføje et ekstra felt, der skal udfyldes, og som ikke passer til standard-virkemåden. Men dette er naturligvis kun relevant, hvis formen er sat op omkring et CMS-system, og emailsene er sendt af spambots. Hvis der sidder en konkret person, og afskiber emailsene, er det næsten umuligt at undgå.
Avatar billede Asky Seniormester
10. november 2021 - 20:54 #2
Det første der falder mig ind er at skride til at ændre på koderne i programmeringen, men det har vel egentlig ikke nogen virkning overfor uautoriseret brug af programmeringen. Oprindelig havde vi en meget simplere mailfunktion på hjemmesiden, men den blev forkastet af det webhotel, vi den gang brugte. Derfor tyede jeg til en anden model med SMTP, som jeg blev rådet til i denne glimrende konference. Den har da også fungeret fejlfrit i rigtig mange år. Mit eksempel er det første forsøg, som heldigvis blev opfanget af webhotellets beskyttelse. Foreløbig vil jeg nok ikke ændre noget med mindre, der kommer flere forsøg på misbrug. Men et eksempel på et ekstra "hack" vil jeg da gerne se.
Avatar billede ejvindh Guru
11. november 2021 - 20:39 #3
"Hack" mente jeg i den oprindelige betydning af ordet: Så hvis din mailform er lavet i et CMS kan man ofte fjerne 99% af alt spam ved at man hardcoder et ekstra inputfelt i php-koden, fordi så dør alle de automatiserede spambots.

Men da det ikke lyder til at det er mængden af spam, men mere karakteren, du er bekymret om, så tror jeg ikke dén løsning er vejen frem.
Avatar billede Asky Seniormester
12. november 2021 - 09:00 #4
Det er sådan, at det lille firma, jeg arbejder for, ikke vil kunne tåle et hackerangreb, der måske lukker al kommunikation. Fx kunne vi købe en betalingssluse i stedet for bestillingerne på hjemmesiden. Det rækker økonomien bare ikke til. Der må krydses fingre for, at spam-en er en enlig svale og at jeg evt kan programmere mig ud af problemet. Angående felter i formularen så er der faktisk en del ekstra felter ud over de sædvalige med navn, adresse, telefon osv.
Avatar billede ejvindh Guru
12. november 2021 - 13:56 #5
Ok, hvis dét er problemet, så tænker jeg, at dit primære fokuspunkt må være at rense emails for potentiel skadelig kode (anti-injection). Det kan du gøre ved at bruge sanitize-funktionerne (se på filter_var). Og holde øje med header-injection. Evt. bruge phpmailer, som har indbygget header-injection prevention:
https://github.com/PHPMailer/PHPMailer
Avatar billede Asky Seniormester
12. november 2021 - 20:22 #6
Jeg benytter netop class.phpmailer.php og class.smtp.php. man kan se mail-de
len af min response her:
toppen:
<?php
header($return_page);
header('Content-type: text/html; charset=utf-8');
function createNewUser() {
    if(isset($_POST['submit'])) {
return FALSE;
}
------------(forskellige check-funktioner)
og mail-delen:
require_once('class.phpmailer.php');
include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail            = new PHPMailer();
//$body            = $mail->getFile('contentsbp.php');
//$body            = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host      = "smtp.webhosting.dk"; // SMTP server
$mail->SMTPDebug  = 2;                    // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth  = true;                  // enable SMTP authentication
$mail->Host      = "smtp.webhosting.dk"; // sets the SMTP server
$mail->Port      = 2525;                    // set the SMTP port for the GMAIL server
$mail->Username  = "info@domæne.dk"; // SMTP account username
$mail->Password  = "xxxxxxxxx";        // SMTP account password
$mail->From    = "info@domæne.dk";
$mail->FromName = "firma";
$mail->AddReplyTo("firma@firma.dk","firma");
//$mail->AddCC($email, "kunde");
$address = "$email";
$mail->AddAddress($address);
$mail->AddBCC("info@domæne.dk", "firma");
$mail->Subject = ($_POST['subject']);

$mail->IsHTML(true);
$mail->MsgHTML($body);
$address = ($_POST['email']);
//$mail->AddAddress($address, "Kunde");
//$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;

} else {
echo "<h3> Formularen er nu sendt til firma fra <br/>".$navn." " .$adresse. " ".$postnummer. " ".$by. ". <br/>
    En e-mail er sendt til " .$email." <br/>som kvittering for din ".$emne. "
<br/> <Venlig hilsen\n\r</h3><h1>firma</h1>";
        }
}
}

    if (some_error) {
        return 'Der skete desværre en fejl - .';
    }
   
    return true;
}

$error = '';
if (isset($_POST['context'])) {
    switch ($_POST['context']) {
        case 'opret':
            $res = createNewUser();
            if (is_string($res)) $error = $res;
        break;
       
        default:
            $error = 'Parameter "context" not known';
    }
} else {
    $error = 'No parameter "context" supplied.';
}

$return_page = isset($_POST['return_page']) ? $_POST['return_page'] : '/konferencesorup2015.php';
if ($error!=='') $return_page .= '?error=' . $error;

//header($return_page);
?>
Avatar billede Asky Seniormester
24. november 2021 - 20:02 #7
Undskylder at jeg har sendt det meste af min kode. Jeg håbede at få et hint om, at der er et sted i koden, hvor en forbedring måske kunne gøre den mere "vandtæt" for uhensgtsmæssig brug.  Jeg venter lige et par dage, hvorefter jeg lukker tråden, Tak til Eivindh for interessen.
Avatar billede ejvindh Guru
25. november 2021 - 13:51 #8
Jeg vil tro, at phpmailer indeholder meget af det sikkerhed, der skal til. Jeg har ikke brugt den selv, så derfor vil jeg ikke udtale mig skråsikkert. Det er naturligvis så afgørende hele tiden at bruge den nyeste version af værktøjet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester