php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 26-01-2012, 01:10
wessei
 Registrierter Benutzer
Links : Onlinestatus : wessei ist offline
Registriert seit: Jul 2011
Beiträge: 20
wessei befindet sich auf einem aufstrebenden Ast
Standard was ist wo und wann sicher _GET, _POST, _SESSION, _COOKIE

hab zur zeit ein projekt am lafen und wie es der zufall so will hab ich im internet gelesen das man variable die per _GET, _POST, _SESSION, _COOKIE verändern kann.
was ist dan demnach am sichersten?

in meiner seite werden _GET, _POST und _SESSION verwendet.

wie kann ich diese variablen sicher machen und überprüfen.

z.b index.php?id=1 wird ja per _GET übergeben was ist wenn man in der url stadt 1 eine 2 macht
kann ich dies vordefinieren und überprüfen erst dan ausgeben.

z.b in einem formular werden grundsätzlich ber _POST übergeben. gibt es dazu eine javascript funktion die zum beispiel die hässlich grauen buttons durch einen normalen link ersetzt und dessen daten nicht durch ein <form> zu übergeben?

zu _SESSION wo wird diese gespeichert und definiert bzw. ist diese sicher und wie verhalten sich diese bei veränderungen?

zu _GOOKIES weis ich die werden clientseitig gespeichert deshalb will ich diese heher vermeiden

mir ist klarr das manche _GET nicht ausbleiben werden wegen verschiedenen mitgliederlisten und das menü selbst darauf aufgebaut wurde. es wurde durchaus auch erwähnt die dateinamen in einem array() oder mysql zu definieren. ist da was wahres dran?

freu mich schauf eure antwort und danke schon im vorraus

mfg. wessei
Mit Zitat antworten
  #2 (permalink)  
Alt 26-01-2012, 09:31
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
z.b index.php?id=1 wird ja per _GET übergeben was ist wenn man in der url stadt 1 eine 2 macht
Das kannst du nicht verhindern.
Bei Post ebenso. JS hilft da gar nicht.

Die Sessiondaten liegen auf dem Server recht sicher, es sei denn der Server Admin ist ein Verbrecher, oder Idiot.
Die SessionID kommt allerdings wieder vom Browser und ist damit, wie alles was vom Browser kommt, fälschbar.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 26-01-2012, 10:00
Krysis
 Registrierter Benutzer
Links : Onlinestatus : Krysis ist offline
Registriert seit: Jan 2003
Beiträge: 71
Krysis ist zur Zeit noch ein unbeschriebenes Blatt
Standard Nichts was vom Client kommt ist sicher

Die Überschrifft dieser Antwort sollte fett, unterstrichen und GROSS geschrieben sein.
Wenn du dies nie vergisst hast du die halbe Miete.

Eine Überprüfung per JavaScript ist NIE sicher. Dies kannst du höchstens einsetzen um dem Besucher schnell und ohne Absenden des Formulars Fehler anzuzeigen. Um deine Anwendung sicher zu machen MUSST du immer Serverseitig validieren.

Wenn die z.B. eine ID übergibst, sei es per GET oder POST oder sie aus dem COOCKIE holst kannst du ganz simpel mit is_numeric überprüfen ob es sich um eine Zahl handelt.
Wenn du nur ganz bestimmte Werte erwartest, dann musst du natürlich auf diese prüfen. Z.B. grösser,kleiner als if ($_GET['x] >= 1 && $_GET['x] <= 10) {...}
Oder du gibst eine Reihe Werte in ein Array und prüfst ob der übergebene darin vorkommt. if ( in_array($_GET['x], array(1,2,5,8)) ) {...}

Wenn du die ID an die Db übergen willst, z.B. in einem SELECT, dann kannst du sei ganz einfach nach int casten, also in eine Ganzzahl umwandeln (int)$_GET['x].

Bei Strings wird es wieder komplizierter. Dieser könnte Schadcode enthalten.
Mach dich hierbei vor allem SQL-Injection schlau. Hier mal ein erster Ansatz: https://de.wikipedia.org/wiki/SQL-Injection. Hierbei ist das Schalgwort mysql_real_escape_string() wichtig. Les dich da unbedingt rein.
Dabei geht es darum, dass Schadcode deine Datenbank zerstören oder was meist noch schlimmer ist, sensible Daten auslesen und an den Angreifer zurückgeben könnte.

Cross-Site-Scripting (XSS) wird oft unterschätzt, ist aber mindestens genauso ernst zu nehmen - siehe hier https://de.wikipedia.org/wiki/Cross-Site-Scripting.
Viele Seiten sind sicher vor SQL-Injections. Durch XSS sind sie aber wieder anfällig durch Identitätsdiebstahl. Wichtig hierbei: Wenn du etwas über die besagten GET, POST, etc. entgegen nimmst, dann darft du dies nicht ungefiltert wieder zurück auf die Seite lassen. Bsp. du hast ein Form und wenn der Benutzer falsche Weingaben gemacht hat und die ihn wieder aufs Formular zurückschickst und das Formular mit seine bereits getätigten Angaben vorausfüllst. Dies könnte ein Angreifer benutzen um einer Person z.B. einen Link per Mail zu schicken. Darin könnte dann evtl. ein falsches Formular angezeigt werden welches zur Eingabe von Passwort auffordert und dieses statt an deinen Server, an den des Angreifers sendet.

Alles in allem denke ich, dass du dich noch gründlich damit auseinandersetzen solltest.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
variable auslesen, _cookie, _get, _post, _session


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/102605-was-ist-wo-und-wann-sicher-_get-_post-_session-_cookie.html
Erstellt von For Type Datum
Menue Javascript Funktion Beispiel : Deluxe Menue This thread Refback 26-11-2012 11:53

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ein paar Sicherheitsüberlegungen zu $_SESSION und $_COOKIE MasterG PHP Developer Forum 8 07-07-2006 14:12
$_POST und $_GET + Seitennavigation kerbstone PHP Developer Forum 12 31-12-2005 00:43
$_GET und $_POST probleme=) nlochat PHP Developer Forum 32 28-09-2005 14:27
$_GET und $_POST Tomcat Chriss PHP Developer Forum 16 18-01-2004 14:06
$_GET, $_POST unter Windows und Apache joschua PHP Developer Forum 12 15-10-2002 11:11

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:50 Uhr.