SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.10.2013, 12:40:57
Schneidoa Schneidoa ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 112
Schneidoa eine Nachricht über ICQ schicken
php SecurityFramework

Hallo zusammen,

ich betreibe seit einiger Zeit eine Webseite, bei der Benutzer viele Möglichkeiten haben eigene Inhalte zu Posten. (Profilbild hoch-laden, Profil bearbeiten, Nachrichten schreiben etc.) . Jede Benutzereingabe wird vor der Verarbeitung geprüft bzw. gefiltert. Dies hat bisher auch ohne Probleme funktioniert.

Nun zu meiner Frage:
Um die Sicherheit meiner Webseite weiter zu erhöhen möchte ich zusätzlich alle Benutzereingaben von einem fremd entwickelten "SecurityFramework" überprüfen lassen. (doppelt hält besser)
Dieses möchte ich gerne vor dem Start meiner Anwendung ausführen. Es sollte konfigurierbar sein, ich würde gerne definieren können, dass zB. die POST-Variable 'email' nur email Adressen beinhalten darf oder dass die GET-Variable 'abc' nur Buchstaben enthalten darf.


Findet Ihr die Idee sinnvoll? Kennt Ihr ein geeignetes Framework?

Gruß
Schneidoa
Mit Zitat antworten
  #2  
Alt 18.10.2013, 12:52:02
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: php SecurityFramework

Nein, ad hoc fällt mir da nichts ein. Ein externes Script/Framework halte ich auch nicht für sinnvoll, da sowas neimals den eigenen Bedarf abdecken kann.

Der eine nennt sein Feld für email "email", der andere "mail", der dritte "tripstrü".
Das Verifizieren von Mailadresse lässt sich heute recht problemlos mit PHP lösen und was bei dir sonst noch geprüft werden soll/muss ist für ein Framework nicht nachvollziehbar.

Ich rate von sowas ab.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #3  
Alt 18.10.2013, 14:15:54
Schneidoa Schneidoa ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 112
Schneidoa eine Nachricht über ICQ schicken
Danke für die schnelle Antwort.

Ich hatte an so was in der Art gedacht
PHP-Code:
$framework = new Framework();

if(!
$framework->isEmail($_POST['email'])){
$_POST['email'] = null;
}

//oder 
if(!$framework->isString($_POST['abc'],'a-zA-Z')){
$_POST['abc'] = null;
}

//oder 
if(!$framework->isPNGImage($_FILE['image'])){
$_POST['image'] = null;
}

//Alle anderen "Benutzervariablen" ($_POST, $_GET, $_SESSION etc) auf null setzten 
eine Funktion zum erkennen von Bruteforce-Angriffen, IP-Sperre etc. wäre auch ganz nett.
__________________
Schneidoa.de
Mit Zitat antworten
  #4  
Alt 18.10.2013, 16:51:40
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: php SecurityFramework

Hallo

Zitat:
Zitat von Schneidoa Beitrag anzeigen
.....Es sollte konfigurierbar sein, ich würde gerne definieren können, dass zB. die POST-Variable 'email' nur email Adressen beinhalten darf oder dass die GET-Variable 'abc' nur Buchstaben enthalten darf.

Findet Ihr die Idee sinnvoll? Kennt Ihr ein geeignetes Framework?
...
Ich bezog mich auf deine Frage und bin davon ausgegangen, dass du ein fertiges Framework suchst, dass du einsetzten möchtest.
Sowas geht meistens schief, da es wie schon gesagt, selten alle Anforderungen abgedeckt werden.

Da du deinen Code besser kennst als sonst jemand, denke ich dass du Absicherungen selber machen solltest. Schwachstellen, die man sich durch ein Fremdscript importiert sollte man nicht unterschätzen. Ich setze da mehr auf mich selbst als auf andere.

Wenn dein Script ausreichend gepüft wird, ist eine neuerliche Prüfung eher eine Belastung für den Server als hilfreich. Andere mögen das differenzierter sehen.
Jedes Script, dass man einsetzt, erhöht in meinen Augen eher die Unsicherheit. Ideen und Anleitungen kann man sich aber durchaus von anderen Scripten holen.

Mal sehen, was andere dazu sagen.... ;-)
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #5  
Alt 18.10.2013, 17:04:50
Schneidoa Schneidoa ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 112
Schneidoa eine Nachricht über ICQ schicken
AW: php SecurityFramework

Danke für deine Einschätzung!

Wenn ich am Wochenende ein Paar Minuten Zeit finde, werde ich mal eine Klasse hierfür schreiben. und diese dann hier zur Durchsicht hochladen.
Mit Zitat antworten
  #6  
Alt 18.10.2013, 19:57:53
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
AW: php SecurityFramework

Zitat:
Zitat von Schneidoa Beitrag anzeigen
Ich hatte an so was in der Art gedacht
http://de3.php.net/filter
http://de3.php.net/ctype
Zitat:
IP-Sperre etc. wäre auch ganz nett.
IP Sperre ist in einem Land, in dem fast alle nur ne temporäre IP bekommen, sinnfrei.
Mit Zitat antworten
  #7  
Alt 19.10.2013, 08:34:31
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: php SecurityFramework

Hi,

Zitat:
Jede Benutzereingabe wird vor der Verarbeitung geprüft bzw. gefiltert.
Hast du das selbsterstellt? Was wird da geprüft / gefiltert? Was fehlt deiner Meinung?

Was du suchst ist denk ich ne Kombination aus Input-Klasse und Formular-Klasse. Hat jedes
PHP-Framework denk ich.

z.B. Codeigniter
input
form validation

Ich hab mir da aus verschiedenen vorhandenen irgendwann mal geschrieben.
bsp.
PHP-Code:
$form    ->createForm('newsletterForm');
        ->
_add(array(    'type'=>'text',
                        
'id'=>'EMail'))
        ->
_addRule(array(    'id'=>'EMail',
                            
'text'=>'<br /><span class="redtext">Bitte EMail angeben.</span>',
                            
'action'=>'required'))
        ->
_addRule(array(    'id'=>'EMail',
                            
'text'=>'<br /><span class="redtext">Bitte gültige EMail angeben.</span>',
                            
'action'=>'email'))
        ->
build();
if(
$form->proof('newsletterForm')==true){
    
//

Vielleicht bringt dich das auf ideen...

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #8  
Alt 25.10.2013, 17:53:33
Schneidoa Schneidoa ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 112
Schneidoa eine Nachricht über ICQ schicken
AW: php SecurityFramework

Hatte leider noch nicht genügend Zeit das umzusetzen, aber schon einmal vielen Dank für die Antworten.

Hier mal meinen ungetesteten Ansatz:
PHP-Code:
<?php

class FormValidator{

    private 
$types = array(
            
"integer" => "isInteger",
            
"date" => "isDate",
            
"email" => "isEmail"
    
);

    private 
$data$rules;


    function 
__construct($data$rules){

        
$this->data  =$data;

        
/*
         $rules = array(
                 array("field" => "surname", "type" => "email")
         );
        */

        
$this->rules =$rules;

    }

    public function 
validate(){
        
$formData =  array();
        
$error =  array();

        
$rules $this->data;
        
$data  $this->rules;

        foreach (
$rules as $rule){
            
            if(isset(
$data[$rule['field']])){
                
$functionName =  $types[$rule['type']];
                if(
method_exists($this,$functionName)){
                    if(
$this->$functionName($data[$rule['field']])){
                        
$formData[$rule['field']] = $data[$rule['field']];
                    }else{
                        
$error[] = "ERROR:  '" $data[$rule['field']] . "'!";
                    }
                }else{
                    
$error[] = "Function '" $types[$rule['type']] . "' does not exists!";
                }
            }else{
                
$error[] = "Field '" .$rule['field']. "' does not set!";
            }

        }

        return array(
"error" =>$error"data" => $formData );

    }




    
/*Type Validation */

    
public function isInteger($val){
        
/*ToDo */
        
return true;
    }

    public function 
isDate($val){
        
/*ToDo */
        
return false;
    }

    public function 
isEmail($val){
        
/*ToDo */
        
return false;
    }
}


//Aufruf

--HTML
<input type="email" name="email_name">
<
input type="date"  name="date_name">


--
PHP

--Regeln definieren

$rules 
= array(
         array(
"field" => "email_name""type" => "email"),
        array(
"field" => "date_name""type" => "date")
);



$validator =  new FormValidator ($_POST$rules);

list(
$error$_POST) = $validator->validate();

print_r($_POST);
print_r(error);
__________________
Schneidoa.de
Mit Zitat antworten
  #9  
Alt 26.10.2013, 10:50:48
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: php SecurityFramework

Hi,

sieht doch schon mal gut aus ;)
Aber hat noch einige fehler die sofort auffallen.
z.B.
PHP-Code:
$rules $this->data;
        
$data  $this->rules
Rules = Data ?
PHP-Code:
$functionName =  $types[$rule['type']];
//eher
$functionName =  $this->types[$rule['type']]; 
usw...

wird schon...

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Tunnel lusitaz PHP für Fortgeschrittene und Experten 5 23.10.2006 14:41:33
PHP Mail, kommt nicht an darki777 PHP Grundlagen 2 30.08.2006 00:07:27
PHP Aktualisieren? Ben20 Off Topic Area 17 24.07.2003 17:46:26
werte aus anderer php datei includieren Silencer PHP für Fortgeschrittene und Experten 1 06.05.2003 07:59:56
Einführung in PHP und Datenbanken Lómion PHP für Fortgeschrittene und Experten 7 07.02.2002 14:47:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08:09 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt