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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden |
18.10.2013, 12:40:57
|
Anfänger
|
|
Registriert seit: Mar 2006
Beiträge: 112
|
|
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
|
18.10.2013, 12:52:02
|
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.
|
18.10.2013, 14:15:54
|
Anfänger
|
|
Registriert seit: Mar 2006
Beiträge: 112
|
|
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.
|
18.10.2013, 16:51:40
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: php SecurityFramework
Hallo
Zitat:
Zitat von Schneidoa
.....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.
|
18.10.2013, 17:04:50
|
Anfänger
|
|
Registriert seit: Mar 2006
Beiträge: 112
|
|
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.
|
18.10.2013, 19:57:53
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: php SecurityFramework
Zitat:
Zitat von Schneidoa
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.
|
19.10.2013, 08:34:31
|
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!
|
25.10.2013, 17:53:33
|
Anfänger
|
|
Registriert seit: Mar 2006
Beiträge: 112
|
|
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);
|
26.10.2013, 10:50:48
|
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!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08:09 Uhr.
|