kostenloser Webspace werbefrei: lima-city


variablen in url übergeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    drame

    drame hat kostenlosen Webspace.

    Hi

    folgendes:
    es wird ja empfohlen, die register_globals auf off zu setzen bzw die scripts so zu buan, dass sie ohne register_globals auskommen

    der sinn is ja wegen der sicherheit

    nun ja ok:
    wenn ich aber jetzt ein einfaches script mache und die variablen ?ber das $_GET array abhol, kann ja trotzdem jeder das script mit einem beliebigen ?var=hacker
    aufrufen und es so manipulieren

    wie schaff ich es, dass man die variable nicht einfach so um?ndern kann?

    ich mein da hat das ganze register_globals auf off keinen sinn, wenn man trotzdem das script mit ver?nderter url aufrufen kann und dann die variabl verwendet wird

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ?berpr?f die Variable auf ihre g?ltigkeit. Du wirst es schlecht unmanipulierrbar machen weil deine variable ?ber die URL l?uft die jeder nach belieben ?ndern kann.

    ?berpr?f sie eifnach Ordnungsgem??, bei Datenbank anwendungen usw escapset du sie brav und alles ist in Ordnung. Es sit alles eine Frage des Codes.. bzw des Coders. ;)
  4. Autor dieses Themas

    drame

    drame hat kostenlosen Webspace.

    und wie ?berpr?f ich sie am besten und einfachsten auf g?ltigkeit?

    ich hab mich leider nie mit sicherheit in php besch?ftigt was ich jetzt stark bereue
  5. Dann hol das doch ganz einfach nach! Es sind nur ein paar wesentliche Dinge zu beachten, wie adrians schon sagte. Bei mysql-Anfragen escapset du einfach mit mysql_escape_string(), Usereingaben in Textfelder oder ?hnliches werden mit htmlentities() und/oder addslashes() "entsch?rft". Wenn du GET benutzt, dann wei?t du ja schon, wie die Variable ?berhaupt hei?t und kannst sie mit isset($_GET['foo']) ?berpr?fen. Wenn du dann noch den Typ kennst (z.B. int), kannst du den zur Sicherheit auch nochmal festsetzen $foo = (int) $_GET['foo']

    Das solltest du aber nur als Anregung betrachten, dich mal mit dem Thema zu befassen. Lies dir am Besten mal den Artikel dazu in der php-Newsgroup durch http://www.php-faq.de/ch/ch-security.html
    Und auch google liefert ganz brauchbare Antworten.
  6. ich glaube du wei?t gar nicht, was register_globals eigentlich macht.

    Diese Einstellung ist daf?r zust?ndig, dass ein Angreifer beliebige Variabeln ?ber die URL (also GET) definieren kann, auch wenn diese Variabeln nicht f?r die URL vorgesehen sind.

    register_globals sorgt daf?r, dass man Variabeln nicht per $_GET['meinevariable'] ansprechen muss, sondern gleich per $meinevariable darauf zugreifen kann.

    Folglich kann ein Angreifer jeder Variable selber festlegen.
    z.b. $admin=true;
    auch wenn es eigentlich keine $GET['admin'] Variable geben sollte.

    1. Sicherheitsregel: Traue nie den Daten, die von den User in dein System kommen. Immer alles ?berpr?fen, ob es wirklich eine Zahl ist (Funktion intval() ), ob es MySQL beeinflussen k?nnte (Funktion mysql_real_escape_string() ) und ob man es f?r X-Site Scripting missbrauchen k?nnte (Funktion htmlentities() )
    Auch Regul?re Ausdr?cke sind ein m?chtiges Werkzeug, um Usereingaben zu kontrollieren.
  7. t****y

    Also um SQL Injection vorzubeugen musst du in den Querys wie gesagt escapen. "mysql_real_escape_string" tut dies, http://de2.php.net/manual/de/function.mysql-real-escape-string.php dort gibt es eine nette Funktion die unabh?ngig von magic_quotes arbeitet.
    Bei der Ausgabe solltest du dann aber htmlentities() anwenden oder strip_tags(). Bei meinem Forum z.B. wo threadID etc. per GET ?bergeben wird habe ich eine Funktion geschrieben die abfragt, ob eine Zahl vorliegt ( is_numeric ) und dann entsprechend handelt.

    Hier nochmal Links, damit du wei?t was SQL Injection ?berhaupt ist:
    http://de.wikipedia.org/wiki/SQL-Injection

    Und XSS ( Cross Side Scripting ):
    http://de.wikipedia.org/wiki/XSS
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!