Sicherheit bei Variablen Ã?bergabe

Bash, Shell, PHP, Python, Perl, CGI
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Sicherheit bei Variablen Ã?bergabe

Post by tenshinhan10 »

Ich suche derzeit Infos zur sicheren Ã?bergabe von Variablen Mittels Formularen an eine PHP-Datei.

1.) Kann man einzelne Ã?bertragungsmethoden wie z.B. Get in einzelnen Dokumente deaktivieren ? (ohne Veränderung des Register_Globals Eintrag in der PHP.ini)

2.) Gibts gute Tutorials zum übertragen von Variablen bei Register_Globals = On ?

3.) Gute Tutorials zum Check / Validierung von Variablen

Thx
suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Sicherheit bei Variablen Ã?bergabe

Post by suntzu »

tenshinhan10 wrote: 1.) Kann man einzelne Ã?bertragungsmethoden wie z.B. Get in einzelnen Dokumente deaktivieren ? (ohne Veränderung des Register_Globals Eintrag in der PHP.ini)
Au ja, lass alle GET-Requests deaktivieren... ;-)
Nein, so direkt geht es AFAIK nicht, ich wüsste aber auch nicht, wozu das gut sein sollte. Solange mit den Variablen aus $_GET[] nix gemacht wird kann ja auch nix passieren.
2.) Gibts gute Tutorials zum übertragen von Variablen bei Register_Globals = On ?
Was suchst du denn da für Tutorials? Einfach ansprechen. Oder meinst du...
3.) Gute Tutorials zum Check / Validierung von Variablen
?
Dazu bemühst du am Besten eine Soochmaschine deiner Wahl und liest dir das PHP-Handbuch durch.

Gruß,
Dominik
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Sicherheit bei Variablen Ã?bergabe

Post by tenshinhan10 »

Deine Antwort hilft leider nicht weiter .. so weit war ich auch schon.

P.S. Ich will ja mit den Variabel was machen - daher die Frage ...
und 2. und 3. schließén sich gegenseitig nicht aus ...

... die Suchmaschinen habe ich auch durch und noch nicht das gefunden was ich suche ...wer noch gute Links kennt ..bitte posten.
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Sicherheit bei Variablen Ã?bergabe

Post by dodolin »

Ich will ja mit den Variabel was machen
Ohne das "was" zu kennen, kann man da auch nicht groß was dazu sagen, außer auf das PHP-Manual zu verweisen.
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Sicherheit bei Variablen Ã?bergabe

Post by tenshinhan10 »

Ich will System und Exec Aufrufe machen. Dafür ist eine Absicherung sicherlich nötig. Ich hab diesbezüglich auch schon ein paar Dinge gelesen .. was die Validierung betrift ..das reicht aber noch nicht.

Kann man eventuell feststellen von welcher Seite das PHP-Script aufgerufen wird ...sozusagen eine Kontrolle über die Herkunft ?
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Sicherheit bei Variablen Ã?bergabe

Post by kase »

Lass am besten die Finger von solchen Sachen, da reicht eine Validierung gar nicht aus, und einmal "Spitz" bekommen, kannst du deinen Server gleich reinitialisieren lassen.

Wenn du sagen wir mal 10 feste exec() Commands hast, könntest du mit einer Switch-Case Anweisung arbeiten

Code: Select all

$cmd = $_REQUEST['cmd'];

switch(intval($cmd))
{
      case 1:
      exec("irgendein cmd");
      break;

      case 2:
      exec("irgendein anderer cmd");
      break;
}
Solltest du aber so irgendwas vor haben:

Code: Select all


exec($cmd);

also ich könnte dann nicht mehr gut schlafen ;)
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Sicherheit bei Variablen Ã?bergabe

Post by kase »

tenshinhan10 wrote: Kann man eventuell feststellen von welcher Seite das PHP-Script aufgerufen wird ...sozusagen eine Kontrolle über die Herkunft ?
Ja, nennt sich Referer, aber kann man ohne weiteres fälschen.
Genauso wie deine Begrenzung auf POST rein überhaupt nix bringt, da man mit einem kleinen Handgriff aus einem GET Request ein POST Request machen kann.
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Sicherheit bei Variablen Ã?bergabe

Post by tenshinhan10 »

@ Danke .. das hilft mir schon weiter.

Das mit dem Referer hatte ich auch gelesen ..gerade in Verbindung mit Proxys ect. kann dies teilweis komplett abgeschaltet werden.

Ich werde wahrscheinlich erstmal die Switch-Case Lösung nehmen, da es nur eine kleine Anzahl an Befehlen ist. Vielleicht führe ich noch einen zusätzlichen Test ..ich dächte ich hätte auf einer PHP Seite noch ein spezielles Commando zum checken von System aufrufen gefunden.

Ich glaub der war das:

http://www.php3.de/EscapeShellCmd
preacher
Posts: 24
Joined: 2003-12-10 18:57

verschlüsseln

Post by preacher »

nimm doch einen zufalls-string und verschlüssel den mit einem secret key.
dann schickst du den verschlüsselten string und den zufalls-string per POST an das ziel.
dort entschlüsselt dann wieder der secret key den verschlüsselten string und vergleicht beide.

aber ich würde trotzdem niemals eine POST-var direkt an einen system aufruf übergeben ! ! !

eine gute maskierung macht da schon sinn. also eine case-verzweigung wie weiter oben erwähnt ist sicherlich brauchbar....

ciao,
preacher