ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-09-2005, 22:12
Melchor
 Junior Member
Links : Onlinestatus : Melchor ist offline
Registriert seit: Feb 2005
Beiträge: 61
Melchor ist zur Zeit noch ein unbeschriebenes Blatt
Standard $_POST Inhalte prüfen

Hallo zusammen,

habe schon mehrmals danach gesucht, aber nichts richtiges gefunden. Es geht mir darum, den Inahlt von $_POST zu prüfen. Also ob da versteckte Befehle, Hacks usw. drin sind. Will also einfach nur die Sicherheit meiner Scripte und des Servers verbessern. Kennt hier vielleicht wer eine Seite wo ich eine genaue Beschreibung finde worauf ich dabei achten muss?
Mit Zitat antworten
  #2 (permalink)  
Alt 12-09-2005, 22:50
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

z.B. htmlentities benutzen
Mit Zitat antworten
  #3 (permalink)  
Alt 12-09-2005, 22:53
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.820
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Selbst wenn versteckte Befehle drin stehen, musst ja nicht alles verarbeiten.

Deine Anwendung benutzt $_POST["user"] und $_POST["pass"]
warum sollte dich ein (wie auch immer) eingeschleustes $_POST["format C:"] interessieren?

Kannst z.B mit

print_r($_POST) auch gerne mal nachsehen ob da was nicht gewolltes drinsteht...
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #4 (permalink)  
Alt 13-09-2005, 00:23
westberlin
 Member
Links : Onlinestatus : westberlin ist offline
Registriert seit: Dec 2002
Ort: bln / fhain
Beiträge: 336
westberlin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich prüfe meisten so:
3 Beispiele mit errorhandling...
[pseudo]

PHP-Code:
$checked_plz = isset($_POST['plz']) ? $_POST['plz']+0;
             if (
$checked_plz == || strlen($_POST['plz']) != 5){
                     
$error[] = 1;
            }

                 
$mobil 0;
                 if (
$_POST['mobil'] == 1){
                     
$mobil 1;
            }

                 if(!
preg_match('/^[a-zA-ZäöüÄÖÜ\/ -]{3,30}$/',$_POST['name'])){
                         
$error[] = 4;
        }

if(
count($error) > 0){

            
$code implode('-',$error);
                         if(
in_array(1$error))
                             echo 
"*plz nicht korrekt!<br>";
// evtl. weitere verwendung der fehlercodes...                         
header("location: blabla.php?code=$code");
exit;
                         
            }
// keine fehler, weiter gehts... 
Mit Zitat antworten
  #5 (permalink)  
Alt 13-09-2005, 00:55
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

in $_POST / $_GET steht das drin, was ich im script erwarte, also prüfe ich auch darauf ... strings werden entwertet, je nach bedarf htmlentities/mysql_escape_string/strip_tags etc. pp. ... zahlenwerte explizit auf float/int gesetzt ... sonderfälle mit regexp geprüft.

was nicht ins raster ^^ passt ... fliegt in die ablage "p".

bei $_FILES sollte man ggfs. shell-zugriff haben, um generell unerwünschte daten vom server fernzuhalten.
__________________
-
Mit Zitat antworten
  #6 (permalink)  
Alt 13-09-2005, 01:31
ExInfernis
 Junior Member
Links : Onlinestatus : ExInfernis ist offline
Registriert seit: Jan 2004
Ort: Berlin
Beiträge: 213
ExInfernis ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bei einem meiner Projekte liegen alle Variablennamen mit ihrer Typbezeichnung in ner DB.
Dazu gibts ne Funktion die alle POST, GET, ... Variablen mit dieser Tabelle abgleicht, also überprüft ob diese Variable überhaupt existieren darf und wenn ja ob der Typ stimmt. Wird ein schwarzes Schaaf gefunden erfolgt ein eintrag in meiner error-history.
Ist natürlich etwas aufwendig dafür aber sehr sicher.
Mit Zitat antworten
  #7 (permalink)  
Alt 13-09-2005, 07:52
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ExInfernis
Bei einem meiner Projekte liegen alle Variablennamen mit ihrer Typbezeichnung in ner DB.
Dazu gibts ne Funktion die alle POST, GET, ... Variablen mit dieser Tabelle abgleicht, also überprüft ob diese Variable überhaupt existieren darf und wenn ja ob der Typ stimmt. Wird ein schwarzes Schaaf gefunden erfolgt ein eintrag in meiner error-history.
Ist natürlich etwas aufwendig dafür aber sehr sicher.
wiedermal ein perfekter Overkill für die Datenbank, bei einem größerem (großen) Projekt
Mit Zitat antworten
  #8 (permalink)  
Alt 13-09-2005, 11:18
kaguya
 Newbie
Links : Onlinestatus : kaguya ist offline
Registriert seit: Apr 2004
Beiträge: 132
kaguya ist zur Zeit noch ein unbeschriebenes Blatt
kaguya eine Nachricht über ICQ schicken
Standard

das wollte ich auch gerade sagen
man sollte immer versuchen möglichst wenige queries zu benutzen, das was du machst kannst du sicherlich auch mit textdateien oder ganz anders lösen.
Mit Zitat antworten
  #9 (permalink)  
Alt 13-09-2005, 18:58
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von kaguya
das was du machst kannst du sicherlich auch mit textdateien
das ist genauso der perfekte Overkill für das Filesystem
Mit Zitat antworten
  #10 (permalink)  
Alt 13-09-2005, 19:28
ExInfernis
 Junior Member
Links : Onlinestatus : ExInfernis ist offline
Registriert seit: Jan 2004
Ort: Berlin
Beiträge: 213
ExInfernis ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Db ist nur klein und steht auf nem eigenen Server.
Hatte einfach Lust es umzusetzen.
Mit Zitat antworten
  #11 (permalink)  
Alt 13-09-2005, 19:53
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ExInfernis
Die Db ist nur klein und steht auf nem eigenen Server.
Hatte einfach Lust es umzusetzen.
kannst du ja auch tun, aber für 120%-Projekte/Server sind solche Spielereien nichts
Mit Zitat antworten
  #12 (permalink)  
Alt 13-09-2005, 21:59
kaguya
 Newbie
Links : Onlinestatus : kaguya ist offline
Registriert seit: Apr 2004
Beiträge: 132
kaguya ist zur Zeit noch ein unbeschriebenes Blatt
kaguya eine Nachricht über ICQ schicken
Standard

naja dann eben ganz ohne speichern
ich meinte nur das es im filesystem besser ist als in ner db, mysql hält bekanntlich nicht viel aus
Mit Zitat antworten
  #13 (permalink)  
Alt 13-09-2005, 22:07
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von kaguya
mysql hält bekanntlich nicht viel aus
Woher hast du das denn?
Mit Zitat antworten
  #14 (permalink)  
Alt 14-09-2005, 10:43
kaguya
 Newbie
Links : Onlinestatus : kaguya ist offline
Registriert seit: Apr 2004
Beiträge: 132
kaguya ist zur Zeit noch ein unbeschriebenes Blatt
kaguya eine Nachricht über ICQ schicken
Standard

von leuten die sich auskennen

ich kenne da jemanden der macht sowas seit 14 jahren, unter anderem hat er seit 1999 eine shop software und der meint das seine konkurrenz mit MYSQL shops sehr viel schneller an ihre grenzen kommt als er mit seinen gut durchdachten csv datenbanken, alleine was Artikelanzahl angeht. Da ein Shop sehr klickintensiv ist und viele shops in der db etliche verknüpfungen mit tabellen für variationen oder andere sprachen haben wir das ganze ab 10.000 artikeln sehr viel langsamer als bei text dateien.

und im vergleich zu zb xtcommerce ist sein shop ne ecke schneller.

bei foren etc kann man auf mysql natürlich nicht verzichten aber ich finde man sollte sich db anfragen sparen wo man kann.
Mit Zitat antworten
  #15 (permalink)  
Alt 14-09-2005, 12:39
programmer
 Newbie
Links : Onlinestatus : programmer ist offline
Registriert seit: Sep 2005
Beiträge: 4
programmer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
und im vergleich zu zb xtcommerce ist sein shop ne ecke schneller.
was wohl von der programmierung abhängt, ich denke unter gleichen voraussetzungen ist ne datenbank um längen schneller wie textdateien. dazu muss die anwendung und die datenbank auch auf performance designed werden, was in vielen anwendungen nicht der fall ist.

aber zur eigentlichen frage:

prüfe alle POST-Variablen so genau wie möglich, wie scho westberlin geschrieben hat:

Was wird erwartet? nur zahlen, dann akzeptiere nur zahlen.
nur text?, dann akzeptiere nur text.

Filtere zusätzliche Zeichen aus, die keinen sinn machen (Zeilenumbrüche etc....)

und htmlentities() verwenden.

Zitat:
Selbst wenn versteckte Befehle drin stehen, musst ja nicht alles verarbeiten.

Deine Anwendung benutzt $_POST["user"] und $_POST["pass"]
warum sollte dich ein (wie auch immer) eingeschleustes $_POST["format C:"] interessieren?
verarbeitet wird das doch dann aber meistens in ner datenbankanfrage, und dafür sollte es schon so geprüft werden, dass keine SQL-Befehle eingeschleust werden können.
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Schwere Sicherheitslücke in PHP 5.3.9
Schwere Sicherheitslücke in PHP 5.3.9Die Sicherheitslücke erlaubt das Ausführen von PHP-Code über das Netzwerk. Suhosin bringt Abhilfe öffnet jedoch alte Probleme

02.02.2012 | Berni

Firefox 10 enthält neue Entwicklerwerkzeuge
Firefox 10 enthält neue EntwicklerwerkzeugeFirefox steht in der Version 10 zum Download bereit. Gerade Entwickeler dürften sich über die neuen Entwicklungswerkzeuge freuen.

31.01.2012 | phpler

 

Aktuelle PHP Scripte

Gästebuchservice Script ansehen Gästebuchservice Script

Eröffnen Sie ihren eigenen Gäsebuchservice und bieten Sie ihren Besuchern ein kostenloses Gästebuch an. Verdienen Sie an den Integrierten AD System. Viele Benutzerdeffinierte Einstellungen ermöglichen ihren Kunden eine gute Integration an das Layout ihrer

10.02.2012 maternet | Kategorie: PHP/ Gaestebuch
LizenzMaker

Mit dem PDF-LicenseMaker erstellen Sie völlig unkompliziert und innerhalb kürzester Zeit eine Lizenz für Ihre Software-Artikel im PDF-Format. Sie verwalten die Daten Ihrer Software, Lizenztexte, PDF-Dokumente und Lizenzgrafiken bequem über ein Webinter

10.02.2012 maternet | Kategorie: PHP/ PDF
Top 100 Counterservice mit Verzeichnis ansehen Top 100 Counterservice mit Verzeichnis

Sie erhalten in diesem Script ein Top 100 Verzeichnis mit einem integrierten Counterservice. Wenn Sie sich Registrieren erhalten Sie einen kostenlosen Counter für ihre Website. Wenn ihre Besucher auf den Counter klicken, erhalten Sie automatisch eine h

09.02.2012 maternet | Kategorie: WEBMASTER/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:23 Uhr.