Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Partner
Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
http://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
http://www.Artfiles.de
 
 
 

[Tutorial] Kontaktformular erstellen [5 / 7]

Sie befinden sich: Home > Webmaster News

In diesem Teil wollen wir uns kurz mit dem Thema Sicherheit beschäftigen.

Grundsätzlich müssen Sie allen Eingaben, die von Usern kommen, misstrauen. Grade Kontaktformulare, bei denen ja zuletzt eine Email ausgesandt wird, sind besonders beliebte Ziele von Spammern. Wenn man die eingegebenen Daten ungeprüft weiterverarbeitet, so kann es sehr schnell passieren, dass ein Angreifer über Ihren Server massenweise Spams verschickt. Wir können daher unser Script so, wie es jetzt da steht nicht lassen, sondern müssen die drei Eingaben prüfen.

Wir können mit der Funktion strip_tags eingegebene HTML-Befehle entschärfen. Im Code sieht das dann so aus: $name=strip_tags($name) - und ähnliches müssten wir auch für alle anderen Eingabefelder schreiben. Dazu später mehr.

Manchmal werden auch führende oder sich anschließende Leerzeichen eingegeben, die wir nicht haben möchten, und die wir mit trim() abschneiden müssen. Weiter müssen wir uns darum kümmern, dass eingegebene Hochkommas und Doppelhochkommas und sonstige Sonderzeichen nicht automatisch escaped werden. Wenn auf Ihrem Server nämlich in der php.ini die sog. magic quotes aktiviert sind, dann macht PHP vor jedes eingegebene Hochkomma automatisch einen Backslash. Aus ' wird dann ' usw. Ob magic quotes eingeschaltet sind verrät uns get_magic_quotes_gpc().

Wir können nun alles benötige zusammen in eine kleine praktische Funktion schreiben:

Quelltext: PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
function eingabe($var{
    
$was $_POST[$var];
    
$was trim($was);
    
$was strip_tags($was);
    if(
get_magic_quotes_gpc()) {
        
$was stripslashes($was);
    }
    return 
$was;
}
?>

Statt $name = $_POST['name']; schreiben wir nun $name = eingabe('name'). Hier der aktuelle Code:

Quelltext: PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

<?php

function eingabe($var{
    
$was $_POST[$var];
    
$was trim($was);
    
$was strip_tags($was);
    if(
get_magic_quotes_gpc()) {
        
$was stripslashes($was);
    }
    return 
$was;
}

$hinweis "Bitte füllen Sie alle Felder aus und klicken Sie dann auf Absenden";

if (!empty(
$_POST['senden'])) {

  
// Formular wurde abgeschickt
  
$name eingabe('name');
  
$email eingabe('email');
  
$nachricht eingabe('nachricht');

}
?>

Geben Sie probeweise

Quelltext: PHP
1
2
abc<b>def

ein. Dies wird nach dem Absenden des Formulars zu abcdef,

Quelltext: PHP
1
2
<script>alert 'CSS' </script>

wird zum harmlosen alert 'CSS' und die einfachen Hochkommas erhalten keinen Backslash.

Sobald alle Daten bereit sind zur weiteren Verarbeitung werden wir noch solche Sonderzeichen entschärfen, die zum Teil von eingeschleusten Befehlen werden können.

 

Teile dieses Tutorials: -1- -2- -3- -4- -5- -6- -7-

 

(Quelle: Wolfgang ), Eingetragen am 08.07.2008


Schreib ein Kommentar

Name
Mail
Webseite
Kommentar