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 Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 10-11-2006, 14:47
spider1747
 Newbie
Links : Onlinestatus : spider1747 ist offline
Registriert seit: Nov 2005
Beiträge: 9
spider1747 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Variablenübergabe mit Session an SSL

Hallo,
folgendes Problem:
Nach einem Login starte ich eine Session mit
PHP-Code:
session_start (); 
$_SESSION["ses_id"]=md5(uniqid(rand())); 
In allen Dateien die aufgerufen werden, frage ich mit
PHP-Code:
if (!isset ($_SESSION["ses_id"])) 
{
header ("Location: fehler.php"); 

nach ob die Session och aktiv ist
Irgendwann später möchte ich Daten auf den Server übertragen. Die Datenübertragung soll sicher sein, deswegen würde ich dann gerne auf SSL wechseln und die Datei https://www.domain.de/schreiben.php aufrufen.

Im SSL-Berich ist jetzt aber die Session nicht mehr aktiv. Wie schaffe ich es, dass auch auf https://www.domain.de/schreiben.php die Sitzung aktiv bleibt und ich so die Datenübertragung verschlüsselt gestalten kann?
Ich möchte möglichst nur die schreiben.php auf SSL laufen lassen und sonst alles "normal" über http.

Weiß da jemand eine Lösung? Besten Dank im Voraus!
Mit Zitat antworten
  #2 (permalink)  
Alt 10-11-2006, 14:56
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Im SSL-Berich ist jetzt aber die Session nicht mehr aktiv. Wie schaffe ich es, dass auch auf https://www.domain.de/schreiben.php die Sitzung aktiv bleibt und ich so die Datenübertragung verschlüsselt gestalten kann?
Bist du sicher, dass die Session ID im URL oder als Cookie an den Client geschickt wird ? Und wieso erstellst du eine eigene "SessionID" als Session Var ? Das macht php bereits für dich
PHP-Code:
session_start();
echo 
SID
Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 10-11-2006, 15:05
BugBite
 Member
Links : Onlinestatus : BugBite ist offline
Registriert seit: May 2006
Beiträge: 299
BugBite ist zur Zeit noch ein unbeschriebenes Blatt
Standard

um von php aus mit ssl servern sprechen zu können brauchste ja
sowas wie curl
dh du musst über curl ne session machen aber für mich is das alles nur graue theorie google hilft sicher
Mit Zitat antworten
  #4 (permalink)  
Alt 11-11-2006, 20:09
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@topicstarter
Wie übergibst du die Session ID von Seite zu Seite ? Schreibst du diese z.B. mit echo strip_tags(SID) hinten an die URL oder lässt du das von php erledigen ? Wenn du es von php erledigen lässt könnte ich mir vorstellen dass php einen https Host als andere Domain ansieht und als Sicherheitseinstellung die Session ID nicht überträgt. Händisch kriegst du die Session ID aber auf jeden Fall durch.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 12-11-2006, 10:36
spider1747
 Newbie
Links : Onlinestatus : spider1747 ist offline
Registriert seit: Nov 2005
Beiträge: 9
spider1747 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Händisch heißt in diesem Fall, dass ich die Sessionvariablen wie u.a. die $_SESSION["ses_id"] (und alle anderen relevanten Variablen) per POST weitergeben muß? Dass heißt, die https-Seiten werden behandelt wie eine komplett andere Domain?
Mit Zitat antworten
  #6 (permalink)  
Alt 12-11-2006, 16:43
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Händisch heißt in diesem Fall, dass ich die Sessionvariablen wie u.a. die $_SESSION["ses_id"] (und alle anderen relevanten Variablen) per POST weitergeben muß?
Wo hast du denn das her ? Hat du mal das Manual zum Thema Session gelesen ?
Es ist ja gerade der Witz an Sessions, dass du die einzelnen Session Vars eben nicht übertragen musst. Diese bleiben auf dem Server und werden einer Session ID zugeordnet. Und nur diese Session ID muss übertragen werden, damit der Server weiss auf welches Set an Session Vars er zugreifen muss.
Die mal so als kleines Bsp
PHP-Code:
//index.php
<?php
session_start
(); // Session starten
$_SESSION['login'] = true//Session Var login mit Boolean belegen

//Link zu session.php
/*in der Konstanten SID ist bei deaktivierten Cookies die Session Id
 in der Form [b]session_name=session_id[/b] gespeichert. Ein strip_tag() 
entfernt etwaige Sicherheitslücken*/
?>
<a href="session.php?<?php echo strip_tags(SID);?>">

//session.php
<?php
session_start
(); /*eine neue Session wird nur erstellt wenn keine 
bekannte via Cookie oder URL übertragen wurde. Ansonsten 
werden die entsprechenden Session Vars geladen*/

var_dump($_SESSION['login']);
?>
Du siehst also dass nur die Session ID übertragen wird.
Zitat:
Dass heißt, die https-Seiten werden behandelt wie eine komplett andere Domain?
Wenn du die Session ID nicht händisch übergibst, macht das PHP normalerweise für dich. D.h. PHP erweitert alle durch url_rewriter_tag erlaubten Tags, die innerhalb deiner Domain sind, automatisch um die Session ID. Zu einer Domain gehört eben auch das verwendete Protokoll und http !== https. Darum wird php wohl eine andere Domain annehmen und die Session ID nicht übertragen.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 13-11-2006, 08:57
spider1747
 Newbie
Links : Onlinestatus : spider1747 ist offline
Registriert seit: Nov 2005
Beiträge: 9
spider1747 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wo hast du denn das her ? Hat du mal das Manual zum Thema Session gelesen ?
Es ist ja gerade der Witz an Sessions, dass du die einzelnen Session Vars eben nicht übertragen musst. Diese bleiben auf dem Server und werden einer Session ID zugeordnet. Und nur diese Session ID muss übertragen werden, damit der Server weiss auf welches Set an Session Vars er zugreifen muss.
Das ist schon klar. Die Frage ist halt wie ich die Session auf "https" bekomme.
Zitat:
Darum wird php wohl eine andere Domain annehmen und die Session ID nicht übertragen.
Das ist genau das Problem.

@BugBite
Das mit curl hört sich interessant an, muß ich mir mal genauer ansehen.
Mit Zitat antworten
  #8 (permalink)  
Alt 13-11-2006, 23:48
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Das ist genau das Problem.
Dann löse es doch einfach händisch
PHP-Code:
<a href="https://meine_domain.de/secure_login.php?<?php echo strip_tags(SID);?>">
Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


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

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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:32 Uhr.