09. januar 2004 - 19:48Der er
2 kommentarer og 1 løsning
Mail script - Sikkerhedstest
Hejsa eksperter
Jeg har lavet et script til at sende mail til nogle brugere via nettet i et kartotekssystem.
Jeg har en kolonne i min tabel kaldet unik, dette er en unik talkode som bruges til at vertificere hvem du ønsker at sende til og samtidigt kan man ikke bare ændre person_id i adresselinien.......
Jeg har brug for at høre lidt om forskellige faldgruber i mit script - Samt hvordan disse evt. afhjælpes......
mvh. Henning
<?php // Header hentes og indsættes på siden include($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/header.php'); require($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/vis_enhedens_ledere.php');
if (isset($_GET["action"])) { $action = $_GET["action"]; } else { echo "GET action ikke sat<br>";} if (isset($_POST["action"])) { $action = $_POST["action"]; } else { echo "POST action ikke sat<br>";} if (isset($_GET["ab_person_id"])) { $ab_person_id = $_GET["ab_person_id"]; } else { echo "GET ab_person ikke sat<br>";} if (isset($_POST["ab_person_id"])) { $ab_person_id = $_POST["ab_person_id"]; } else { echo "POST ab_person ikke sat<br>";} if (isset($_GET["unik"])) { $unik = $_GET["unik"]; } else { echo "GET unik ikke sat<br>";} if (isset($_POST["unik"])) { $unik = $_POST["unik"]; } else { echo "POST unik ikke sat<br>";} $fra = $_GET["fra"]; $fra_email = $_GET["fra_email"]; $subject = $_GET["subject"]; $besked = $_GET["besked"]; $person_id = $_GET["person_id"];
switch ($action) {
case send_mail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'"; echo $sql; $resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
if (mail("$email","$subject","$message","$from"."$reply")) { echo "Succes"; }; // Der genereres en mail og sendes til $emailliste
break;
case writemail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'";
echo "$sql<br><br>"; $resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
while ($rowdata = mysql_fetch_array($resultat)) {
extract($rowdata);
}
close_database();
?> <br><h2>Du vil gerne sende en email til: <br><?php echo "$fornavn $efternavn"; ?></h2> <?php
<br>Der kan ikke bruges HTML tags til at skrive mailen, den skal skrives som alm. plaintext.<br> <input value="Send email" type=submit> <input value="Slet" type=reset><?php break;
<?php // Header hentes og indsættes på siden include($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/header.php'); require($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/vis_enhedens_ledere.php');
// If sætningerne nedenunder, undersøger om der kommer input via $_GET eller $_POST // Kommer der data sættes variablen til værdien og dermed true. Dette betyder i praktisk // at der kan anvendes samme id.
if (isset($_GET["action"])) { $action = $_GET["action"]; } else { echo "GET action ikke sat<br>";} if (isset($_POST["action"])) { $action = $_POST["action"]; } else { echo "POST action ikke sat<br>";} if (isset($_GET["ab_person_id"])) { $ab_person_id = $_GET["ab_person_id"]; } else { echo "GET ab_person ikke sat<br>";} if (isset($_POST["ab_person_id"])) { $ab_person_id = $_POST["ab_person_id"]; } else { echo "POST ab_person ikke sat<br>";} if (isset($_GET["unik"])) { $unik = $_GET["unik"]; } else { echo "GET unik ikke sat<br>";} if (isset($_POST["unik"])) { $unik = $_POST["unik"]; } else { echo "POST unik ikke sat<br>";}
// Switch skifter mellem at skrive mailen eller sende den
switch ($action) {
// 1st case (Send)
case send_mail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'";
echo $sql;
$resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
if (mail("$email","$subject","$message","$from"."$reply")) { echo "Succes: Sending mail"; }; // Der genereres en mail og sendes til $emailliste
break; // case END
// 2nd case (Write)
case writemail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'";
echo "$sql<br><br>";
$resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
while ($rowdata = mysql_fetch_array($resultat)) {
extract($rowdata); }
close_database();
?>
<br><h2>Du vil gerne sende en email til: <br><?php echo "$fornavn $efternavn"; ?></h2>
<br>Der kan ikke bruges HTML tags til at skrive mailen, den skal skrives som alm. plaintext.<br> <input value="Send email" type=submit> <input value="Slet" type=reset><?php
Er der nogen risiko når der sendes fra en formular?? Og er jeg løbet ind i dem?
mvh. Henning
<?php // Header hentes og indsættes på siden include($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/header.php'); require($_SERVER['DOCUMENT_ROOT'].'/lib/mainsite/vis_enhedens_ledere.php');
// If sætningerne nedenunder, undersøger om der kommer input via $_GET eller $_POST // Kommer der data sættes variablen til værdien og dermed true. Dette betyder i praktisk // at der kan anvendes samme id.
if (isset($_GET["action"])) { $action = $_GET["action"]; } else { }// echo "GET action ikke sat<br>"; if (isset($_POST["action"])) { $action = $_POST["action"]; } else { }// echo "POST action ikke sat<br>"; if (isset($_GET["ab_person_id"])) { $ab_person_id = $_GET["ab_person_id"]; } else { }// echo "GET ab_person ikke sat<br>"; if (isset($_POST["ab_person_id"])) { $ab_person_id = $_POST["ab_person_id"]; } else { }// echo "POST ab_person ikke sat<br>"; if (isset($_GET["unik"])) { $unik = $_GET["unik"]; } else { }// echo "GET unik ikke sat<br>"; if (isset($_POST["unik"])) { $unik = $_POST["unik"]; } else { }// echo "POST unik ikke sat<br>";
// Switch skifter mellem at skrive mailen eller sende den
switch ($action) {
// 1st case (Send)
case send_mail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'";
// echo $sql;
$resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
if (mail("$email","$subject","$message","$from"."$reply")) { echo "Succes: Sending mail"; }; // Der genereres en mail og sendes til $emailliste
break; // case END
// 2nd case (Write)
case writemail:
open_database(strandboernedk);
$sql = "SELECT * FROM ab_person, ab_adresse WHERE ab_person.ab_person_id = $ab_person_id AND ab_person.ab_person_id = ab_adresse.ab_person_id AND ab_adresse.aktiv = 1 AND ab_person.unik = '$unik'";
// echo "$sql<br><br>";
$resultat = mysql_query($sql) or die(mysql_error()); // Ved fejl skrives fejlen til skærmen
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.