Portal > Foren > PHP > PHP-Programmierung > Wie kann ich das verhindern?
Antwort
 
Themen-Optionen
Alt 02.02.2006, 14:21 Nach oben    #1
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard Wie kann ich das verhindern?

Hallo, und zwar schaut euch mal den URL an:

Zitat:
http://tradestore.bakirnet.de/index.php?id=<img src="test" alt="Gefährdung?" width="10000" height="11000">
So. Das möchte ich natürlich nicht haben, weil jetz wird ein Bild angezeigt, welches gar nicht existiert, wie kann ich verhindern das so etwas möglich ist, so einen "code" an den url zu hängen, ich benutze bislang den Code hier:

PHP-Code:
 if(!is_numeric($_GET['id']))

      {
  echo 
'<b>Artikel ID nicht gültig.</b>';
  echo 
'</div>';
  echo 
'</body>';
  echo 
'</html>';
            exit;
      } 
Nun bekomme ich zwar die ausgabe das die Arikel ID nicht gültig ist, aber das bild wird dennoch angezeigt?

Danke für ein Paar infos.

PS: Ja ich habe das Tutorial gesehen "Sichere php webapplikationen schreiben" aber ich glaube da ist nicht das richtige bei oder?

Gruss,
bob
__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:30 Nach oben    #2
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Cross Site Scripting (XSS) nennt man sowas.
Mach einfach
PHP-Code:
$url '<>""/\:';
$url rawurlencode($url);

echo 
'<a href="index.php?url='.$url.'">klick</a>'
http://php.net/rawurlencode
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:31 Nach oben    #3
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
Standard

ja irgendwo musst du ja dann ein echo $_GET['id'] oder ähnliches haben, ausserdem is_numeric lässt auch komma-zahlen zu, ctype_digit() ist hier besser, setzt zwar vorraus dass ctype instlaliert ist, aber das ist eigentlich standard.

mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:32 Nach oben    #4
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard

Alels klar, danke !

rawurlencode
das habe ich gesucht

Gruss,
bob
__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:51 Nach oben    #5
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard

So da bin ich auch schon wiede ...
und zwar der Code hier
Zitat:
$url = '<>""/\:';
$url = rawurlencode($url);

echo '<a href="index.php?url='.$url.'">klick</a>'
klappt nicht .. tolle Fehlerbeschreibung .. Ich bekomme dann immer eine meldung "Artikel ID nicht gültig" ... es handelt sich bei mir ja nicht um einen link sondern wenn man an den url hier
http://tradestore.bakirnet.de/index.php?id=16
die Zahl (16) weggmacht, kann man jeden x beliebiegen html code einfügen.

Was mache ich denn hier falsch? :rolleyes:
__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:55 Nach oben    #6
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard

Hier nochmal zur veranschaulichung:

PHP-Code:
if(isset($_GET['id']))
    {
        
      
        
        if(!
ctype_digit($_GET['id']))

      {
  echo 
'<b>Artikel ID nicht gültig.</b>';
  echo 
'</div>';
  echo 
'</body>';
  echo 
'</html>';
            exit;
      }
   
   

  else
{
//artikeldaten ausgeben ....

__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 15:02 Nach oben    #7
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 449
Standard

Du scheinst weiterhin die Artikel-ID (bzw. das was hinter id= steht) auszugeben.. das musst du natürlich noch in die if-Abfrage mit einbauen.
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 15:21 Nach oben    #8
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard

Zitat:
Du scheinst weiterhin die Artikel-ID (bzw. das was hinter id= steht) auszugeben.. das musst du natürlich noch in die if-Abfrage mit einbauen.
PHP-Code:
if(isset($_GET['id']))
    {
        
      
        
        if(!
ctype_digit($_GET['id']))

      {
      
  
      
$url '<>""/\:';
      
$url rawurlencode($url);

  echo 
'<b>Artikel ID nicht gültig.</b>';
  echo 
'</div>';
  echo 
'</body>';
  echo 
'</html>';
            exit;
      } 
Meinst du das so? - Also hier genau das Gleiche ... maaaaaaan ich wette das ist wieder nur ein sowas von kleiner Fehl


Gruss,
bob
__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 15:50 Nach oben    #9
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Was soll denn bitte dieser Code bewirken?

Ich denke das hier ist eher dein Geschmack.
PHP-Code:
$artikelID array_key_exists('id'$_GET) ? (int)$_GET['id'] : 0;

if ( 
$articleID )
{
    
// [...]
}
else
{
    
// [...]

__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 21:21 Nach oben    #10
Master of Disaster
 
Benutzerbild von Matthias959
 
Registriert seit: 18.08.2005
Ort: Duisburg
Beiträge: 36
Standard

Poste einfach mal ein bisschen mehr Code von der Seite.
Irgendwo musst du per echo() oder print() $_GET['id'] ausgeben, weil nur weil etwas ab der URL angehängt ist wird es ja noch lange nicht angezeigt.
__________________
Matthias959 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2006, 13:00 Nach oben    #11
bob
o_O
 
Registriert seit: 18.08.2005
Ort: Essen
Beiträge: 159
Standard

Sooooooo ich habs geschafft, und zwar hatte ich das hier ausgegeben

echo 'Detailansicht Artikelnr.: ' . htmlentities($_GET['id']);

also die Zeile wo man sieht wo man grade ist ... jetzt klappt es.
Man das ich das auch übersehen habe ....


Danke nochmals!
bob
__________________
Grüsse aus Essen,
bob
bob ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

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 aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Das automatische Strippen von whitespaces am Ende der Zeile verhindern Ben Eclipse 7 28.09.2007 11:43
doppeltes Senden (zurück Button) verhindern julien PHP-Programmierung 7 01.08.2007 01:41
Zeilenumbruch nach <div> verhindern? ljungi HTML, XML und CSS 9 19.08.2006 21:31
Programmbeendigung verhindern Robinson Allgemeine Java-Programmierung 4 14.12.2005 10:01
repaint verhindern Gottzilla Desktop-Applikationen und Grafik 4 11.08.2005 15:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:57 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44