php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.10.2004, 16:44  
Gast
 
Beiträge: n/a
Standard Sicherheit bei Wertübergaben

Hallo zusammen

Ich möchte eine dynamische Webseite basteln, die einen mehrere Links enthält, die alle auf die selbe PHP-Datei zeigen. In Abhängigkeit welcher Link geklickt wurde soll die Ausgabe von ausg.php unterschiedlich sein. Dies geht mit einem Link, dem ein spezifischer Wert übergeben wird und dieser per GET eingelesen werden kann. Das hab ich soweit mitbekommen.

Nun die eigentliche Frage:
Wie sieht es mit der Sicherheit aus. Wie muss ich diesen Wert in ausg.php behandlen, dass nicht ein verstecktes Skript oder sonst irgendwelche Sicherheitsrelevanten einträge angehängt werden und diese dann von ausg.php ausgeführt werden.

Vielen Dank für Eure Antworten

Gruss Marc
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.10.2004, 17:14  
Gast
 
Beiträge: n/a
Standard

Wenn der Wert lediglich eine ID trägt, die du intern in ausg.php bearbeitest und sowieso auf Gültigkeit validierst, ist es egal. Mehr Vorsicht ist geboten wenn dein Wert:

1. Eine Datenbank-ID beinhaltet, die du in einer SQL-Abfrage einbindest (einfach zur Sicherheit immer mit
Code:
$id=(int)$_REQUEST['id'];
vorbearbeiten)

2. Einen Dateipfad beinhaltet von einer Datei die du auf irgendeiner Art und Weise liest, includest oder sonst wie bearbeitest (hier am besten nur mit dem Dateinamen arbeiten und den Pfad intern im Skript davor hängen, ausserdem sollten Sonderzeichen wie "." oder "/" ersetzt werden durch irgendetwas wie "_".

3. Ein Stück Text ist, den du wieder darstellen willst. Am besten bei jeder HTML-Darstellung solcher Übergabeinhalte die Funktion htmlentities() verwenden.

Grüsse

Lev
 
Alt 14.10.2004, 17:23  
Gast
 
Beiträge: n/a
Standard

sicher ist, wenn du per get nur zahlen übergibs.
also nicht a la:
index.php?file=news

und auch ein blindes einsetzen der von usern übergebender werte ist tabu.
also NICHT:
PHP-Code:
<?php
if(isset($_GET['file']))
{
   include 
$file.'.php';
}
?>
sinnig ist es ein array zu erstellen, wo alle basuchbaren seiten drin sind.
und vernünftig zu überprüfen:
PHP-Code:
<?php

// array mit den seiten:
$files = array( => 'main.php',
                      
=> 'ordner/script.php',
                      
=> 'beispiel.php',
                      
=> 'ende.php');

// der link sieht zB so aus: index.php?act=3
// überprüfen des werts:

$id = isset($_GET['act'])?(int)$_GET['act']:0;

// prüfen ob dieser wert im array vorhanden ist
if(!array_key_exists($id$files))

   
$id 0;
}

// einbinden der seite
include ($files[$id]);

?>
die funktionen kannst du ja selbst bei http://de.php.net/manual/de/ nachschlagen
 
Alt 14.10.2004, 18:06  
Gast
 
Beiträge: n/a
Standard

So rufe ich z.B. mit einem zentralen Skript andere Seiten auf (diese werden darin eingebettet, je nach Aufruf)

Script: show(.php)

PHP-Code:
<?
ob_start
();
$page=array();
$path='/server/blah/blubb/path/inc/forms';
$arr=explode('/',$_SERVER['PATH_INFO']);
if (!
$_SERVER['PATH_INFO'] || !is_array($arr))
    
Header ('Location: http://'.$_SERVER['SERVER_NAME'].'/static/errors/404/');
$page['id'] = trim(strtr(array_pop($arr),'./','__'));
if (!
file_exists("$path/".$page['id'].".php")) {
    
Header ('Location: http://'.$_SERVER['SERVER_NAME'].'/static/errors/404/');   
}
// Unterseite einbinden
include("$path/".$page['id'].".php");
ob_end_flush(); 
?>
Die Clous von diesem simplen Code:

1. Das Ganze wird Suchmaschinen-freundlich verlinkt. Ich kann also http://www.meineseite.de/show/blubb aufrufen, dann wird das Formular "blubb.php" dargestellt (geht leider nur auf Apache-Server die Rewrite-Rules eingeschaltet haben).

2. Ich lege in den Server-seitigen Ordner '/server/blah/blubb/path/inc/forms' einfach meine neuen Seiten an und muß am Hauptskript nichts rumfummeln, diese werden bereits automatisch darin erkannt.

3. Es werden aus diesem Ordner nur Dateien der Form "alphanum.php" gelesen, versucht man dagegen auf etwas wie "name.inc.php" zuzugreifen mit "http://www.meineseite.de/show/name.inc", geht das nicht und man wird in den "Seite nicht gefunden"-Friedhof umgeleitet. Ich kann also bedenkenlos auch eigene Libraries mit einem Namen, der 2 Punkte beinhaltet, in das Verzeichnis '/server/blah/blubb/path/inc/forms' ablegen und diese wiederum in den einzelnen Seiten includen, aber direkt drauf zugreifen wird trotz der Funktionalität in Punkt 1. keiner.

Grüsse

Lev
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
BACKLINK CHECK und SICHERHEIT von zentraler CSV-Datei ff-webdesigner.de PHP-Fortgeschrittene 16 27.11.2008 20:25
Sicherheit in PHP robydog PHP Tipps 2008 52 10.05.2008 13:09
externe MySQL und Sicherheit sportyflo Datenbanken 2 22.02.2008 11:09
FON und die WiFi Ads - Bald mehr Sicherheit PHP Tipps 2007 0 03.08.2007 12:06
PHP Sicherheit Plague PHP Tipps 2007 13 26.04.2007 16:24
PHP Sicherheit phpdummi PHP Tipps 2006 1 27.09.2006 23:31
Erfahrung mit Sessions ( Sicherheit ) GELight PHP Tipps 2006 6 11.08.2006 17:55
Sicherheit... GELight PHP Tipps 2006 5 31.01.2006 15:58
Sicherheit aufm Webserver ? Cyberbob_at_tot Off-Topic Diskussionen 7 17.10.2005 16:22
Frage zur Sicherheit von GET Variablen malaga PHP Tipps 2005-2 3 20.09.2005 13:36
Sicherheit im Web-Interface nussbaum PHP Tipps 2005-2 9 29.06.2005 14:10
Sicherheit.... renzo PHP Tipps 2005-2 1 27.06.2005 15:53
Sicherheit von Klartext-Passwörtern PHP Tipps 2005 14 30.03.2005 15:22
Apache öffentlich machen. Sicherheit? Server, Hosting und Workstations 3 07.07.2004 03:20
Sicherheit bei URL-Übergabe pcschröda PHP-Fortgeschrittene 25 28.06.2004 16:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sicherheit int, php $_get sicher, php sicherheitslücke post get, php get sicher, php $_get sicher auslesen, http://www.php.de/php-tipps-2004/10476-sicherheit-bei-wertuebergaben.html, php formular get suchmaschinenfreundlich, php funktion mit mehreren wertübergaben, php sicherheit get, php sicherheit mysql get, php get sicherheit, get php sicher, php datei get sicherheitslücke, backlink check mit unterseiten php, sicherheit php get, php sicher get

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.