AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Parameter übergeben

Ein Thema von Yheeky · begonnen am 7. Apr 2008 · letzter Beitrag vom 9. Apr 2008
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

[PHP] Parameter übergeben

  Alt 7. Apr 2008, 23:00
Hey,
ich habe folgendes Problem: Ich habe ein PHP Script und möchte dies gerne mit einem Parameter aufrufen. Der Aufruf sieht wiefolgt aus:

Code:
http://meine-Homepage.de/script.php?username=Test
Ich habe in der PHP Datei folgenden Code:
Code:
<?php
  include('server.php');

 $sqlabfrage = "SELECT * FROM user WHERE name='$username' ";

 $res = mysql_db_query($db, $sqlabfrage);
 $num = mysql_affected_rows();
     
 echo $sqlabfrage;
 
?>
In der Server.php stehen die Serverdaten.
Zum Testen habe ich mir die "sqlabfrage" also echo anzeigen lassen, doch egal, welchen Usernamen ich eingebe, es kommt immer folgende Ausgabe:

Code:
SELECT * FROM user WHERE name ''
Kann mir da jemand sagen, wieso nicht der übergebene Parameter angezeigt wird? Was mache ich da denn falsch?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: [PHP] Parameter übergeben

  Alt 7. Apr 2008, 23:19
Code:
$username = $_GET["username"];
$sqlabfrage = "SELECT * FROM user WHERE name='$username' ";
Aber dem Parameter darfst du nicht trauen, da musst du die EIngabe erst prüfen!
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
finalr

Registriert seit: 13. Mär 2008
17 Beiträge
 
#3

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 00:28
Noch eine kleine Anmerkung

Niemals den Parameter in einer SQL-Abfrage so einfügen:
Code:
$sql = "SELECT * FROM user WHERE name='".$_GET['username']."'";
Sonst besteht die Gefahr einer SQL-Injection, also immer den Parameter auf Gültigkeit überprüfen und nie den Parameter direkt in einer Abfrage einbauen!

Gruss Daniel
  Mit Zitat antworten Zitat
TillWe

Registriert seit: 20. Apr 2005
26 Beiträge
 
#4

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 09:01
mysql_db_query($db, $sqlabfrage);
Hier muß (glaub ich?) erst der Query, dann die DB Verbindung.
Zitat:
Kann mir da jemand sagen, wieso nicht der übergebene Parameter angezeigt wird? Was mache ich da denn falsch?
Du zeigst nur den Query an, Du willst abe das Ergebnis anzeigen:
http://de.php.net/function.mysql-result
http://de.php.net/manual/de/function...-fetch-row.php
http://de.php.net/manual/de/function...etch-array.php
http://de.php.net/manual/de/function...etch-assoc.php
http://de.php.net/manual/de/function...tch-object.php

Wie die Vorposter schon gesagt haben solltest Du die Benutzereingaben nicht ungefiltert verwenden:
http://de.php.net/manual/de/function...ape-string.php

Außerdem ist es besser SELECT username, ... anstatt SELECT * zu schreiben.
Vielleicht solltest Du noch überlegen ob der Username wirklich in die URL gehört (weiß ja nicht was Du machen willst) vl. wäre es besser ihn über POST oder so zu senden?!

mfg
mfg
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 09:52
Jetzt kommt aber der Spass....falls magic_quotes_gpc an ist, darf man nicht ohne weiteres mysql_real_escape_string drueberlaufen lassen. Nehmen wir an ein User gibt das ein:
Code:
');DROP DATABASE bar;--
dann kommt in $_GET folgendes an:
Code:
\');DROP DATABASE bar;--
Falls ich dann nochmal mysql_real_escape_string() drueberlaufen lass, dann hab ich
Code:
\\\');DROP DATABASE bar;--
oder
Code:
\\');DROP DATABASE bar;--
Und wie mans dreht und wendet, das sind auf alle Faelle zuviele \

Deshalb: auf alle Faelle erstmal stripslashes() drueberlaufen lassen, wenn magic_quotes_gpc an ist (don't you just love it?)

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#6

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 13:27
Okay, super.
Folgende Zeile funktioniert:

Code:
$username = $_GET["username"];
Warum ist das aber unsicher? Ich möchte doch nur anhand von einem Usernamen Daten auslesen...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 13:41
Man kann damit das Query manipulieren:

Wenn $username bsp. das hier ist: ' OR 1=1 OR name='
Dann wird deutlich zu viel ausgelesen. Natürlich kann man auch anderes damit anstellen.

Code:
$sqlabfrage = "SELECT * FROM user WHERE name='' OR 1=1 OR name='' ";
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 15:02
Zitat von Yheeky:
Warum ist das aber unsicher? Ich möchte doch nur anhand von einem Usernamen Daten auslesen...
Siehe XKCD: "Exploits of a Mom"

Ueberleg dir einfach was passiert, wenn man so einen String ins Query reinhaut.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#9

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 15:07
ja dann könnte man dein Passwort leicht überschreiben oder überhaupt, natürlich kann man das auch nur wenn man weiß wie deine Tabbelen heißen aber wenn die daten aus phpbb kommen... '); CREATE Where(Name='NOOB' Password='angegebener Hash' Rang='1');

Syntax nicht ganz korrekt und Rang und so gibts nicht... ich will die SKs nicht dazu verleiten...^^
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#10

Re: [PHP] Parameter übergeben

  Alt 8. Apr 2008, 15:53
HI,

noch eine kleine Anmerkung

Code:
http://meine-Homepage.de/script.php?username=Test
Die dazugehörige PHP-Variable heißt tatsächlich $username. Um aber an diese heranzukommen muss man in der PHP.Ini ne kleine Änderung vornehmen. Selbst nach einem kleinen Studium einer Beispiel PHP.ini hab ich zwar den Schalter nicht gefunden, bin mir aber 100%tig sicher, dass es ihn gibt.

rollstuhlfahrer
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz