Autor Thema: PHP : Sicherheit  (Gelesen 1056 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Daniel K.

  • Terabyte
  • ***
  • Beiträge: 685
  • C/C++ - Programmierer
    • Profil anzeigen
    • codebox
  • OS: Xubuntu 9.10 Karmic Koala i686
PHP : Sicherheit
« am: 01. September 2008, 18:20:35 »
Warum schreib ich dies obwohl es etliche books darueber gibt?
weil ich finde, wenn man die probleme oder loesungen von anderen liest, kann man besser lernen :D
ausserdem ist sicherheit in php-skripten ein grooosses thema und vielleicht schreiben hier ja mal ein paar leute :D

also das einfachste zu erst...
Uninitialisierte Variable

Vielleicht habt ihr schonmal davon gelesen, damit sind Variablen in PHP-Scripts gemeint, die nicht vorher mit einem Wert gefuellt wurde.
Ein Beispiel:
<?php
if(isset($_GET['password']) && $_GET['password']=="12345678"$zeige_admin=true;
if(
$zeige_admin){include("admin.inc.php");}
?>


Was passiert hier?
Wenn der Parameter password gleich "12345678" ist, dann wird die Variable $zeige_admin auf true.
Als nextest wird ueberprueft, ob eben diese auf true steht, was nur sein soll, wenn der Parameter entsprechend ist.

Wie kann man nun die [vielleicht fuer Anfaenger noch nicht ganz sichtbare] Sicherheitsluecke benutzen?
Wir muessen nur die Variable $zeige_admin auf true setzen, damit wir "in" den admin bereich kommen.
Und zwar mit folgendem Parameter
?zeige_admin=true
damit ist die Variable true und wir kommen in den Adminbereich.

Aber wie kann man das verhindern?
Mit einer einzigen Zeile $zeige_admin=false; am Anfang des Codes.
Damit wird die Variable entsprechend gesetzt und nicht mehr via GET gechanged

{ Hab jez keine Lust mehr zu schreiben xD }
--

Man kann auch register_globals in der php.ini auf off setzten, aber man darf sich auf nichts verlassen!

Berichtigt mich wenn ich fehler gemacht hab :D
« Letzte Änderung: 02. September 2008, 15:46:24 von muhcu »
divide et impera
codebox


Offline Miguel

  • Forum-Staff
  • Administrator
  • Exabyte
  • *****
  • Beiträge: 1818
  • freestylechiller
    • Profil anzeigen
    • PC-Onlineforum.de
  • OS: Ubuntu Linux & Win7
Re: PHP : Sicherheit
« Antwort #1 am: 01. September 2008, 21:35:07 »
jup du f?ngst an mit "1." zu argumentieren und f?hrst die liste nicht fort :p :p
awas^^

1.Eine Programmiersprache sollte schreib- und lesbar für Orang-Utans sein.
2.Die Syntax sollte einfach sein, leicht zu merken und das Wort Monkey (engl. Affe) vermeiden.
3.Bananen sind gut.

Offline Ennosuke

  • Mr Blood
  • Globaler Moderator
  • Gigabyte
  • ***
  • Beiträge: 487
  • Strawberries & Blood
    • Profil anzeigen
Re: PHP : Sicherheit
« Antwort #2 am: 01. September 2008, 22:23:03 »
du hast im quelltext ne " vergessen ^^ :P
Only a Strawberrie can understand blood, because she is red

Offline Daniel K.

  • Terabyte
  • ***
  • Beiträge: 685
  • C/C++ - Programmierer
    • Profil anzeigen
    • codebox
  • OS: Xubuntu 9.10 Karmic Koala i686
Re: PHP : Sicherheit
« Antwort #3 am: 02. September 2008, 15:47:04 »
jaja danke :D
muss wohl ein wenig durch den wind gewesen sein und so^^
divide et impera
codebox

Offline Ennosuke

  • Mr Blood
  • Globaler Moderator
  • Gigabyte
  • ***
  • Beiträge: 487
  • Strawberries & Blood
    • Profil anzeigen
Antw:PHP : Sicherheit
« Antwort #4 am: 20. November 2009, 15:59:06 »
So hier mal noch ein Hinweis:

Ab PHP6 wird es register_globals NICHT mehr geben, daher ist diese  Sicherheitslücke nicht mehr existent!
Dennoch solltet ihr alle Variablen die ihr später überprüft initialisieren! Ausnahmen sind Variablen, welche von einer Funktion mit einem Wert befüllt wird bsp:
<?php

function passCorrect($pass) {
    if(
$pass == '12345678')
    {
        return 
true;
    }
    else
    {
        return 
false;
    }
}

$log passCorrect($_GET['pass']);
if(
$log ==  true)
{
    echo 
"Drin";
}
else
{
    echo 
"noep!";
}
?>
ACHTUNG! Dies ist ein Beispiel welches andere Sicherheitskriterien missachtet daher solltet ihr es unter keinen Umständen in produktiven Code einsetzten!
Only a Strawberrie can understand blood, because she is red

Offline Daniel K.

  • Terabyte
  • ***
  • Beiträge: 685
  • C/C++ - Programmierer
    • Profil anzeigen
    • codebox
  • OS: Xubuntu 9.10 Karmic Koala i686
Antw:PHP : Sicherheit
« Antwort #5 am: 20. November 2009, 19:06:58 »
Ah, guter Hinweis.
Was kommst sonst noch so mit der Sechser?
divide et impera
codebox

Offline Ennosuke

  • Mr Blood
  • Globaler Moderator
  • Gigabyte
  • ***
  • Beiträge: 487
  • Strawberries & Blood
    • Profil anzeigen
Antw:PHP : Sicherheit
« Antwort #6 am: 20. November 2009, 20:06:52 »
Einiges ^^ .

Ich bin kein Entwickler daher weiß ich das alles nicht, aber einige depractede Funktionen werden entfernt und magic_quotes werden entfernt. Musst mal die Doku durchgehen und schaun wo das steht, dass es entfernt wird ^^.
Only a Strawberrie can understand blood, because she is red

Offline Miguel

  • Forum-Staff
  • Administrator
  • Exabyte
  • *****
  • Beiträge: 1818
  • freestylechiller
    • Profil anzeigen
    • PC-Onlineforum.de
  • OS: Ubuntu Linux & Win7
Antw:PHP : Sicherheit
« Antwort #7 am: 20. November 2009, 21:32:15 »
wann kommts raus?

1.Eine Programmiersprache sollte schreib- und lesbar für Orang-Utans sein.
2.Die Syntax sollte einfach sein, leicht zu merken und das Wort Monkey (engl. Affe) vermeiden.
3.Bananen sind gut.

Offline Ennosuke

  • Mr Blood
  • Globaler Moderator
  • Gigabyte
  • ***
  • Beiträge: 487
  • Strawberries & Blood
    • Profil anzeigen
Antw:PHP : Sicherheit
« Antwort #8 am: 20. November 2009, 21:51:19 »
Nächste Fage ;) keine Ahnung ^^ letztens sind erst neue 5er Versionen rausgekommen.
Only a Strawberrie can understand blood, because she is red