Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Ist $_SERVER['HTTPS'] manipulierbar?
Antwort
 
Themen-Optionen
Alt 14.12.2006, 16:36   Nach oben    #1
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard Ist $_SERVER['HTTPS'] manipulierbar?

Hallo,
ich habe eine Frage zu den Inhalten des $_SERVER-Arrays und im Speziellen zu $_SERVER['HTTPS'].

Im Manual steht
Zitat:
'HTTPS'

Set to a non-empty value if the script was queried through the HTTPS protocol.
Fein. Frage ist nur: kann man das auch irgendwie vo außerhalb manipulieren oder reicht folgende Codezeile
PHP-Code:
$protocol = isset($_SERVER['HTTPS']) ? 'https' 'http'
Danke für Eure Hilfe.
Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 16:56   Nach oben    #2
Byrel
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Geh immer davon aus, das alles was im $_SERVER steht von außen manipuliert werden kann.

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 17:00   Nach oben    #3
dejan_spasic
Erfahrener Benutzer
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 168
Standard

Zitat:
Zitat von Ben Beitrag anzeigen
Hallo,
Fein. Frage ist nur: kann man das auch irgendwie vo außerhalb manipulieren oder reicht folgende Codezeile...
Mir ist nicht bekannt, dass man den Wert "ausserhalb" manipulieren könnte
Zitat:
...oder reicht folgende Codezeile
PHP-Code:
$protocol = isset($_SERVER['HTTPS']) ? 'https' 'http'
Zur sicherheit kannst du ja noch überprüfen ob der Wert auch "on" ist.
PHP-Code:
$protocol = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) === "on" 
    
'https' 
    
'http'
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 17:41   Nach oben    #4
Byrel
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Nahezu jeder Wert von $_SERVER kann von außen manipuliert werden. Selbst PHP Entwickler wissen teilweise nicht was manipuliert werden kann und was nicht ...

Deshalb immer annehmen, dass Daten die von SCPG kommen "tainted" sind.

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 18:03   Nach oben    #5
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard

Hallo,
danke.

Dejans Ergänzung würde mir dann ja ganz gut stehen, ne?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 19:05   Nach oben    #6
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
Standard

SCPG ?

//edit:
rofl der will das nicht groß schreiben!
//edit 2:
haha schlaues vB, nur großbuchstaben im post und er macht alles bis auf den ersten klein
__________________
I did it my way - Senseless-Blog

Geändert von WarrenFaith (14.12.2006 um 19:08 Uhr).
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 19:11   Nach oben    #7
Byrel
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Server, Cookie, Post, Get

@Ben
Besser wenn du einfach den port prüfst

Geändert von Byrel (14.12.2006 um 19:14 Uhr).
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 20:01   Nach oben    #8
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard

Zitat:
Zitat von Byrel Beitrag anzeigen
Besser wenn du einfach den port prüfst
Das tue ich wie?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 20:18   Nach oben    #9
Byrel
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

if ($_SERVER["SERVER_PORT"]!=443)
echo "kein ssl";
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2006, 20:27   Nach oben    #10
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard

Nun, hm. Jau.
Danke, werde ich mir merken und bei Gelegenheit einfließen lassen.

Dank und Grüße,
Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 09:14   Nach oben    #11
chrigu
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Zitat:
Zitat von Byrel Beitrag anzeigen
if ($_SERVER["SERVER_PORT"]!=443)
echo "kein ssl";
Oben schreinst du, dass nahezu jeder Wert in $_SERVER manipuliert werden kann und empfiehlst ihm jetzt, dieses zu verwenden?
Da kann er ja einfach $_SERVER['HTTPS'] prüfen, oder?

Gruss,
Chrigu
chrigu ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 11:25   Nach oben    #12
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard

Joa ... ich habs nun so verstanden, weil es ja eine negierte Abfrage ist. Also ich vergleiche, ob es ungleich ist. Hm ...
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 13:48   Nach oben    #13
Artemis
Semantic Web Fanatic
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 235
Standard

Naja, das ändert ja nichts, ob ich jetzt schreibe
PHP-Code:
if ($_SERVER["SERVER_PORT"]!==443)
  echo 
"Kein SSL";
else
  echo 
"SSL"
oder
PHP-Code:
if ($_SERVER["SERVER_PORT"]===443)
  echo 
"SSL";
else
  echo 
"Kein SSL"
Gästern spät gewesen Ben, oder irre ich mich jetzt total?

Naja, dejans Variante und die Überprüfung auf den Port sollte reichen, sicherer gehts meiner Meinung nach nicht.
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 14:08   Nach oben    #14
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard

Heute Morgen war ich noch bei meinen $o, $f, $t, $x ... .. und gestern .. joa, müde.

Danke.
Hab für mich die beste Lösung erhalten.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 14:48   Nach oben    #15
chrigu
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Zitat:
Zitat von Byrel Beitrag anzeigen
Geh immer davon aus, das alles was im $_SERVER steht von außen manipuliert werden kann.
Mich persönlich würde jetzt noch die Begründung dazu interessieren?
Hat jemand einen guten Link?

Gruss,
Chrigu
chrigu ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 15:18   Nach oben    #16
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
Standard

http://www.owasp.org/index.php/Main_Page
http://phpsec.org/ (siehe deren Linksektion)
http://sillyish.org/security.php
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 15:50   Nach oben    #17
chrigu
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Ok, aber gibt es ein konkretes Code-Beispiel, wo eine Variabel aus $_SERVER manipuliert wird?
Ich meine jetzt nicht den User-Agent (welcher ja vom Browser kommt), sondern z.b. $_SERVER['HTTPS']?
Mir geht es darum, dass z.b. Shibboleth in dieses globale Array Werte schreibt.. Wenn man sich nicht darauf verlassen könnte, wäre dies ja katastrophal..!

Gruss,
Chrigu

Aja: http://de.wikipedia.org/wiki/Shibboleth_%28Internet%29
chrigu ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 16:17   Nach oben    #18
Byrel
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

1. Es gibt haufenweise Code Beispiele
2. Kannst ja auch selbst versuchen zu manipulieren

Begründung:
Weil PHP die Sachen teilweise aus dem HTTP Header nimmt bzw. aus irgendeiner anderen manipulierbaren Quelle

MfG Byrel
Byrel ist offline  
Add Post to del.icio.usBookmark Post in Technorati