Portal > Foren > PHP > PHP-Programmierung > Frames vermeiden - aber wie...?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 12.08.2006, 16:43 Nach oben    #1
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard Frames vermeiden - aber wie...?

Hallo,
im Html Board gibt es grad eine Disskussion...

Also ich möchte auch gerne frames und iframes vermeiden wo es nur geht.
Kriegs aber irgendwie nicht hin, es klappt nicht:
- http://my.webfan.de/curl.php
Es sollen aber die Cookies auch ausgelesen werden:
- http://my.webfan.de/global_menu.php

Meine einzige Idee bisher (außer das ich was falsch mach/übersehen hab) ist die Cookies für jede Domain extra zu erstellen (Ping-Pong mäßig zu synchronisieren/spiegeln) - ich hab aber schon jetzt viel zu viele cookies, ist also unschön.

Hat jemand eine Idee?

mfg

EDIT:
Zitat:
curl_setopt($ch, CURLOPT_COOKIEJAR, "curl_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "curl_cookies.txt");
-> Was ist das, muß da "was hin"?

EDIT2:
Zitat:
If you have upgraded to using thread safe PHP (with apache 2 MPM=worker) note that
CURLOPT_COOKIEJAR / CURLOPT_COOKIEFILE both need an absolute path set for the cookie file location and no longer take a relative path.
Geht trotzdem nicht

Geändert von Homepagespeicher (12.08.2006 um 17:47 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.08.2006, 18:44 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Vielleicht bin ich zu doof, aber
  1. was genau willst du eigentlich machen?
  2. wo genau liegt dein Problem?
    Zitat:
    Es klappt nicht
    ist jetzt nicht wirklich eine verwertbare Problembeschreibung.
  3. was sollen mir diese beiden Links zeigen? Ich sehe da nicht wirklich etwas von Interesse.

Danke.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.08.2006, 18:56 Nach oben    #3
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Zitat:
was genau willst du eigentlich machen?
Ich möchte dieses hier: http://my.webfan.de/global_menu.php auf verschiedenen Domains einbinden (hab ich vergessen oben zu schreiben, sorry).
Zitat:
wo genau liegt dein Problem?
Es klappt folgendes nicht:
Das script liest Cookies aus.
Wenn ich aber das script mit curl (erster Link) einbinde funktioniert die Übergabe der Cookiedaten nicht (Man ist immer nicht angemeldet und hat nichts ausgewählt)!
(Zum testen muß man sich nur mal kurz anmelden, nicht registrieren, es wird nichts gespeichert!)

- Ich weiß nicht ob das überhaupt geht, hab aber das Gefühl es geht irgendwie nur mach irgendwas grundsätzlich falsch.


mfg
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.08.2006, 19:01 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Zeig uns doch mal den Code.
Ich denke, dass der an dieser Stelle ganz hilfreich sein könnte.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.08.2006, 19:09 Nach oben    #5
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Ich hab die Funktion von dsxs benutzt (thx!) http://forum.developers-guide.net/sh...4194#post34194

PHP-Code:
<?php
/**
 * TZ 2
 *
 * Type:     function
 * Name:     curl
 * Date:     October 31, 2005
 * Purpose:  Get and Post vars over http using the php.curl lib
 * @version  1.0.1
 *
 * Change Log:
 *         - 1.0     initial relsease
 *        - 1.0.1    added POST function
 *        - 1.0.2    Review 16.05.2006
**/

// Set some globals
$user_agent "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.10) Gecko/20050717 Firefox/1.0.6";
$curl_debug FALSE;

$headers[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
$headers[] = 'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3';
$headers[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';

function 
curlGET ($url){
    global 
$user_agent;
    global 
$curl_debug;
    global 
$headers;

    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_CONNECTTIMEOUT"15");
    
curl_setopt($chCURLOPT_PORT"80");
    
curl_setopt($chCURLOPT_USERAGENT$user_agent);
    
curl_setopt($chCURLOPT_HTTPHEADER$headers);
    
curl_setopt($chCURLOPT_VERBOSE0);
    
curl_setopt($chCURLOPT_COOKIEJAR"curl_cookies.txt");
    
curl_setopt($chCURLOPT_COOKIEFILE"curl_cookies.txt");

    
$exec curl_exec ($ch);

    if (
$curl_debug) {
        echo 
"CURL_DEBUG: get_url: ".$url;
    }
    return 
$exec;
    
curl_close ($ch);
}

function 
curlPOST ($url$data) {
    global 
$user_agent;
    global 
$curl_debug;
    global 
$headers;
    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_CONNECTTIMEOUT"15");
    
curl_setopt($chCURLOPT_PORT"80");
    
curl_setopt($chCURLOPT_USERAGENT$user_agent);
    
curl_setopt($chCURLOPT_HTTPHEADER$headers);
    
curl_setopt($chCURLOPT_VERBOSE0);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_SSLVERSION"2");
   
// curl_setopt($ch, CURLOPT_COOKIEJAR, "home/www/web68/html/mywebfan/mywebfan/cookies.txt");
   // curl_setopt($ch, CURLOPT_COOKIEFILE, "home/www/web68/html/mywebfan/mywebfan/cookies.txt");
   
curl_setopt($chCURLOPT_COOKIEJAR"home/www/web68/phptmp/cookies.txt");
   
curl_setopt($chCURLOPT_COOKIEFILE"home/www/web68/phptmp/cookies.txt");

    
curl_setopt($ch,    CURLOPT_POST1);
    
curl_setopt($ch,    CURLOPT_POSTFIELDS$data);

    if (
$exec curl_exec ($ch)) {
        
curl_close ($ch);
        if (
$curl_debug) {
            echo 
"CURL_DEBUG: post_url: ".$url.$data;
        }
        return 
$exec;
    } else {
    echo 
curl_error($ch);
        return 
FALSE;
        if (
$curl_debug) {
            echo 
"CURL_DEBUG cURL ERROR: post_url: ".$url.$data."<br><br><br>";
        }
    }
}

echo 
curlPOST("http://my.webfan.de/global_menu.php","");
?>
Hab auch probiert curlGET zu nehmen.
Aber das ganze soll doch ins "client-script" - oder

EDIT:
- Seh grad: Hab ich auch vergessen im ersten Post zu schreiben, "was muß da hin", tststs... sorry
-----------------
EDIT 2:
So. hab den Useragent und den Pfad nochmal angepasst und CURLOPT_VERBOSE auf 1 gesetzt
- Geht aber trotzdem nicht (Wird kein Cookie gespeichert)

Frage:
- Geht das überhaupt so?
Ein script darf ja nur cookies der eigenen Domain auslesen.
Wie sollen denn die Cookiedaten vom Client-Browser über ein Client-Script zum Server-Script kommen?
Ich dachte mit curl hätte ich vielleicht eine Chance, oder bin ich auf dem Holzweg?

Geändert von Homepagespeicher (12.08.2006 um 20:38 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.08.2006, 21:05 Nach oben    #6
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Kurz zum abchecken: du möchtest den HTML code, welcher von der Datei erzeugt wird (http://my.webfan.de/global_menu.php) auf verschiedenen Seiten (auch verschiedenen Domains) einbinden und anzeigen lassen?

Nun stellen sich mir 2 Fragen:
1.) warum löst du das ganze nicht PHP intern (include...)?
2.) Wenn du das aus irgendwelchen Gründen nicht willst bist du mit cURL schon an der richtigen Stelle - aber wieso verwendest du cookies??

Gruss


Edit:

curl_setopt($ch, CURLOPT_COOKIEJAR, "home/www/web68/phptmp/cookies.txt");

wird

curl_setopt($ch, CURLOPT_COOKIEJAR, "/home/www/web68/phptmp/cookies.txt");
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2006, 00:17 Nach oben    #7
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Hallo,
erstmal vielen Dank für Deine Hilfe !!!
Den /hab ich schon korrigiert - geht trotzdem nicht, aber ich hab jetzt meinen "Denk"fehler... agrrr... ... bzw. deshalb die Frage ob es überhaupt geht:
Zitat:
du möchtest den HTML code, [..] auf verschiedenen Seiten (auch verschiedenen Domains) einbinden und anzeigen lassen?
Ja
Zitat:
1.) warum löst du das ganze nicht PHP intern (include...)?
Erst dachte ich geht bei mir nicht (externes script includen), naja, die Cookiedaten werden aber nicht übertragen?!?
Zitat:
2.)... - aber wieso verwendest du cookies??
Um die Benutzereinstellung des Menus zu speichern und die Datenbank zu entlasten.
Jetzt mein Denkfehler / mein Problem:
- Die Cookies sollen beim ersten Aufruf gelesen werden (oder muß ich vielleicht irgendeine Seite dafür neu laden???) - geht das?
Also die Cookies werden an anderer Stelle gesetzt ( http://www.webfan.de/modules/My_Webf...pers-guide.net )
-> die cookies befinden sich jetzt im Browser des Users und NICHT, wie es sein sollte (?) im Curl-Client (cookies.txt)!
- global_menu.php soll die Cookies auslesen, aber ohne sie gesetzt zu haben.
geht das?
Dafür müsste curl ja quasi den Browser des users mit seinen Cookies quasi "direkt durchreichen", ich weiß nicht, geht das bei proxys so...?

- Nochmal kurz und bündig mein Vorhaben:
->curl.php (z.B.) soll global_menu.php aufrufen,
->global_menu.php soll jetzt die Cookies des UserBrowsers auslesen
(hierbei eben das Problem mit der Cookiedomain?!?)
->und ein entsprechendes html-result zurück an curl.php liefern
Mein Problem scheint bisher zu sein das die Cookies nur verfügbar zu sein scheinen, wenn sie auch vom curl"vorgang" in die cookies.txt oder so gesetzt wurden ?
Wie lös ich das am sinnvollsten?
mfg + thx
Till
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2006, 06:37 Nach oben    #8
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Hey Till

Ich glaub' ich seh' so ungefähr was du machen möchtest... boaaa
Was du glaube ich willst ist, dass so ziemlich jeder dieses kleine Fenster oder Menü auf seine Seite einbauen kann... bis hierhin noch richtig?
Zudem soll das Menu stets für den User der es gerade sieht personalisiert sein?

Damit erübrigen sich auch meine beiden Fragen, was du vorhast ist demnach nicht mit einem einfachen "include" machbar.

Du gehst aber glaube ich ganz falsch an die Sache ran.

Zitat:
Um die Benutzereinstellung des Menus zu speichern und die Datenbank zu entlasten.
Okay.

Ich sehe drei Aspekte
1. User (Der, der das Win sieht)
2. Server, wo das script eingebunden wird (ulf_sitzt.imknast.de, oder halt auch webfan.de usw)
3. Server, wo das Script läuft (webfan.de)

Also ist das was du vorhast in der Art nicht möglich... Die Menuoptionen willst du ja in der Session des Users (1) speichern... Woher sollte also die Nr. 3, der Server, wo das Script läuft wissen, was der User in seiner Session drin hat? Kann er nicht, auf jeden Fall nicht auf die Weise wie du's vorhast.
Die einzige Möglichkeit, die mir gerade in den Sinn kommt ist folgende:

Nummer 2 (Der Server, wo das Script läuft) setzt und liest die Sessiondaten für den User.
Das Script auf Nummer 3 (welches den HTML code schlussendlich produziert) sitzt auf dem Server rum und wartet dort auf INPUT in Form von POST oder GET Elementen... d.h du machst von Nummer 2 aus etwas in der Richtung:

curlPOST('http://webfan.de/fenster_mach_teil.php','eingelogt=0&menu_aktiv=pin wand');

Das Script selber (nr 3) wertet diese Daten nun aus und gibt dementsprechend einen HTML code aus, welcher wiederum von curlPOST ausgelesen wird und weiterverarbeitet werden kann (echo...!?)

So kriegt der User sein personalisiertes Menu auf den Schirm geschmissen.

Frage ist nun bloss: sind das sensible Daten, mit Login usw, wo der User dann zB informiert wird, wenn ein neues Mail angekommen ist oder dergleichen?
Falls ja, 3 Denkanstösse hierzu:

1.) cookies und sessions im Allgemeinen sind sehr unsicher und einfach manipulierbar. Nicht jeder User akzeptiert cookies, also müssten trans_sid's möglich sein, was wieder grosse Sicherheitslöcher aufmacht.

2.) falls das so ist kannst du die jeweilige Session_id ja jeweils im curlPOST mitliefern. Bedingt jedoch, dass auf der Nr.3 wo das Script läuft in ner Datenbank die eingelogten user und deren infos sind... was du nicht willst wie du gesagt hast?

3.) wenn du alles schon so sexy mit curl löst, dann würde ich persönlich auch gleich einstellen, dass das fenster (http://my.webfan.de/curl.php) auch nur von deinem script gelesen und nicht von überall mit dem browser geöffnet werden kann. zB bei jedem curlPOST eine variable privacy=7686123 mitsenden

if (isset($_POST['privacy']) && $_POST['privacy'] == '7686123') {
html ausgeben;
} else {
header("Location: yousuck.webfan.de");
}



Vielleicht habe ich dein Vorhaben aber auch völlig falsch verstanden und du willst was ganz anderes machen. Auf alle Fälle viel Spass, ich geh jetzt endlich pennen
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2006, 19:52 Nach oben    #9
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Ich war zu lange wach...
Aber bin nun ein bischen schlauer...
Du hast mich denk ich richtig verstanden, und mir auch geholfen, Danke
Es ginge mit einem Ping-Pong Post.
Mir sind noch ein paar wichtige Ideen gekommen... aber brauch erstmal ne Pause!

mfg+thx
Till
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 07:18 Nach oben    #10
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Mh. Ich bin ein wenig ausgeschweift...
Was ich bisher hab ist etwas "strange", aber ich bastel noch
Habe aber noch nicht curl verwendet (kommt aber noch).
Stattdessen muß der Benutzer erst einen Link klicken um zum Cookieeinlesen zu gelangen, das Ergebnis wird gespeichert, der User wird zur Ausgangsseite zurückgeleitet, von dort wird mit der übergebenen Session das Ergebnis wieder ausgelesen.

Erstmal nur zum testen:
Zitat:
<?php
$file_= "http://webfan.de/w/tpl/global_menu.php.tpl";
$filestring = file_get_contents($file_);
$_CL_HPLINK = "www.webfan.de";
$_CL_HEADLINE = "WEBFAN";
$_USECOOKIES = 0; // default=0 (not sinnvoll?)
$_REFERER_CHECK =0; //default=0 (not secure)
//optional:
//session_start();
eval($filestring);
// echo $filestring;
// echo "<font size=\"-1\"><a href=\"http://www.webfan.de/modules/My_Webfan/mytop20.php?action_=add&link_=http://www.DEINE_SEITE.DE&name_=DEINE SEITE\" target=\"_blank\"> Diese Seite zu Deiner My Top20 hinzufügen...</a></font>";
?>
Naja
Wenn jemand Fehler findet oder Vorschläge hat... .

Hab da auch wieder eine Frage:
Die Variable $_CL_HPLINK funzt nicht, wird aber genauso verwendet wie $_CL_HEADLINE, die aber funzt - warum?

.....
Es gibt ja eigentlich die Leitregel, neue Frage, neues Thema..., naja sorry.
Allerdings scheint das Thema etwas komplexer.... (also Inhalte von außen zugänglich machen, ohne frames verwenden zu müssen... .

mfg

EDIT:
...So, sieht zwar noch blöd aus, aber der Fehler ist weg....

Geändert von Homepagespeicher (19.08.2006 um 08:17 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 09:41 Nach oben    #11
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

PHP-Code:
eval($filestring); 
Willst du deinen Server von jemandem abknallen lassen? Niklas hat da ein paar sehr schöne Skripte ala "rm -rf /".
Ne, mal im Ernst, führe niemals Code aus, von dem du nicht genauestens weißt, was er macht.

Übrigens gehört da das echo() hin, ich denke ja mal dass es bei deiner Sache um HTML auslesen geht.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 13:07 Nach oben    #12
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Gott bewahre, ich will nicht abknallen. (der Brunch ist erst morgen, fast wäre ich umsonst losgefahren...
Zitat:
Übrigens gehört da das echo() hin, ich denke ja mal dass es bei deiner Sache um HTML auslesen geht.
Jein
Hier der bishereige Code von global_menu.php.tpl:
Code:
###############################################################
#
#
#
#           RF-Network Project
#           - file global_menu.php
#              V.  testrelease (Testversion)
#           - Code template file
#           - Public
#
#  !!!!!    Attention!!!:
#           Use on own danger -
#           keine besondere Haftung des Herstellers
#
#  !!!!!    Attention!!!:
#           Test-(Entwicklungs)version - (Noch) nicht zum Gebrauch freigegeben
#
#
#           &copy; WEBFAN         - 8/2006
#           http://www.webfan.de
#
#           Forum: http://www.startforum.de
#           ####################################################
#
#           Usage example:   Einbau (Beispiel) in php Code:
#
#                        $file_= "http://webfan.de/w/tpl/global_menu.php.tpl";
#                        $filestring = file_get_contents($file_);
#                        $_CL_HEADLINE = "Titel Deiner Seite";
#                        $_CL_HPLINK ="www.DEINE_SEITE.DE/";
#                        $_USECOOKIES = 0;   //  default=0   (not sinnvoll?)
#                        $_REFERER_CHECK =0;    //default=0  (not secure)
#                         //optional:
#                         //session_start();
#                        eval($filestring);
#
#                        //optional, da $_CL_HPLINK nicht funktioniert (????????????:(
#                        // (Link um Ihre Seite den Top20 hinzuzufügen:-)
#                        echo "<font size=\"-1\"><a href=\"http://www.webfan.de/modules/My_Webfan/mytop20.php?action_=add&link_=http://www.DEINE_SEITE.DE&name_=DEINE SEITE\" target=\"_blank\"> Diese Seite zu Deiner My Top20 hinzufügen...</a></font>";
#                        //Im Script:
#                        $_CL_SHOW_MYLINK = 1;
#
#                         ## Ende d. Einbaucodes
#
################################################################
@session_start();
function defaultmenu()
  {
   $t_=time();
   $k_= session_id();
   $nk=$_server['http_host'].$_server['request_uri'].$t_;
   if(isset($k_) && $k_!=''){$k_=$k_;}else{$k_=md5($nk);}

  echo "
        <a href=\"http://webfan.de/w/index.php?/sessionk/".$k_."/RQ/getcontentredirection/dyn_content/global_menu/\"  style=\"text-decoration:none\" target=\"_parent\"><img src=\"http://webfan.de/w/tpl/menudefault1.jpg\" alt=\"Dein persönliches Navigationsmenu auf dieser Seite anzeigen\" border=\"0\">  </a>
        <a href=\"http://www.webfan.de/modules.php?name=My_Webfan\"  style=\"text-decoration:none\" target=\"_parent\"><img src=\"http://webfan.de/w/tpl/menudefault2.jpg\" alt=\"Zum My.Webfan.de Service anmelden / Menu konfigurieren...\" border=\"0\" ></a>
     ";
  }

function webfannavigation($_USECOOKIES,$_REFERER_CHECK,$_CL_HEADLINE)
{
$val=1;

if($_REFERER_CHECK==1)
      {
      $referer_ = $_SERVER["HTTP_REFERER"];
      $referer_ = parse_url($referer_);
      $referer_host = $referer_['host'];
      $referer_host = str_replace("www","",$referer_host);
      $val=0;
      }



if($_USECOOKIES==1)
     {
     $_WEBFAN_sessionkey=strip_tags($HTTP_COOKIE_VARS['WEBFAN_sessionkey']);
     }


if(!isset($_SESSION['WEBFAN_sessionkey']))
                  {
                  if(!isset($_GET['WEBFAN_sessionkey']))
                    {
                  $_WEBFAN_sessionkey=NULL;
                  $_SESSION['WEBFAN_sessionkey']=NULL;

                    }else{
                           if($val==1){
                                        $_WEBFAN_sessionkey=strip_tags($_GET['WEBFAN_sessionkey']);
                                        $_SESSION['WEBFAN_sessionkey']=$_WEBFAN_sessionkey;
                                      }
                         }

                  }else{$_WEBFAN_sessionkey= $_SESSION['WEBFAN_sessionkey'];}
$_SESSION['WEBFAN_sessionkey']=$_WEBFAN_sessionkey;


if(!isset($_SESSION['WEBFAN_accesskey']))
                  {
                  if(!isset($_GET['WEBFAN_accesskey']))
                    {
                  $_WEBFAN_accesskey=NULL;
                  $_SESSION['WEBFAN_accesskey']=NULL;

                    }else{
                            if($val==1){
                                        $_WEBFAN_accesskey=strip_tags($_GET['WEBFAN_accesskey']);
                                        $_SESSION['WEBFAN_accesskey']=$_WEBFAN_accesskey;
                                       }
                         }

                  }else{$_WEBFAN_accesskey= $_SESSION['WEBFAN_accesskey'];}

if(isset($_GET['WEBFAN_accesskey']))
            {
             $_WEBFAN_accesskey=strip_tags($_GET['WEBFAN_accesskey']);
             $_SESSION['WEBFAN_accesskey']=$_WEBFAN_accesskey;
            }



if(isset($_WEBFAN_accesskey) && $_WEBFAN_accesskey!='' && $_WEBFAN_accesskey!=NULL )
            {
            $file_= "http://webfan.de/w/cache_1/".$_WEBFAN_accesskey.".htm.cache";
            $filestring = @file_get_contents($file_);

            if(!empty($filestring) && $filestring!='')
                 {
                  eval($filestring);
                 }
                 else
                 {
                 defaultmenu();
                 }
             }
             else{defaultmenu();}
              echo "<br>";

if($_CL_SHOW_MYLINK==1)
     {
      echo "<font size=\"-1\"><a href=\"http://www.webfan.de/modules/My_Webfan/mytop20.php?action_=add&link_=http://".$_CL_HPLINK."&name_=".$_CL_HEADLINE."\"  target=\"_blank\">Diese Seite zu Deiner My Top20 hinzufügen...</a></font>";
     }

ob_end_clean();
ob_end_flush();
}

webfannavigation($_USECOOKIES,$_REFERER_CHECK,$_CL_HEADLINE);
############EOT###############################################################
Wenn jemand Sicherheitslücken findet wäre ich natürlich zutiefst verbunden, wenn er mir diese mitteilt...

Das Eval wir bei dem "Clientserver" ausgeführt, der Code soll feststellen ob ein Accesskey übergeben wurde/in der Session vorhanden ist, und wenn dann den entsprechenden Code aus dem "Cache" laden, wenn kein Key vorhanden ist oder der Code im Cache nicht auffindbar ist, wird defaultmenu geladen.

Mir ist übringens noch eine Alternative (generell dazu mein ich) eingefallen:
Man könnte natürlich JavaScript verwenden, JavaScript ist aber nun mal nicht php....

Der Vorteil von eval ist eindeutig das Dublicate Code gespart werden kann, oder?

(Sessionkey in dem Code ist bisher überflüssig/später relevant)

mfg

Geändert von Homepagespeicher (19.08.2006 um 13:09 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 14:50 Nach oben    #13
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Zitat:
Wenn jemand Sicherheitslücken findet
Zitat:
eval($filestring);
Warum? Darum:
Zitat:
Willst du deinen Server von jemandem abknallen lassen? Niklas hat da ein paar sehr schöne Skripte ala "rm -rf /".
Außerdem ist eine bessere Erläuterung sicher nicht verkehrt. Ein "ClientServer" ist genauso schlimm wie ein "Wirelesskabel".
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 15:15 Nach oben    #14
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Erstmal: Klar, sicher ist sicher!
Zitat:
Warum? Darum:
Zitat:
Willst du deinen Server von jemandem abknallen lassen? Niklas hat da ein paar sehr schöne Skripte ala "rm -rf /".
Darum?
Wie, darum? Darum geht es ja: eval sicher zu verwenden (vielleicht wäre ja ein neuer Thread dazu oder ein Tutorial von einem Experten angemessen).

Zitat:
Außerdem ist eine bessere Erläuterung sicher nicht verkehrt. Ein "ClientServer" ist genauso schlimm wie ein "Wirelesskabel".
Ja, soory - ist ja aber noch Baustelle das ganze...

Also mit "Client" meine ich den Server der das evalige anwendet, sich also den Content vom "ProviderSevrver" beschafft (sorry, wenn ich da das Latein nicht so drauf hab)

Es geht darum
- Code zu reduzieren
- "Updatebar" zu machen

Der Anwender kann also einen Code einbauen und soll ihn nicht jedesmal ändern müssen wenn die Applikation upgedated wird..., oder so ähnlich.

Also wo ist jetzt hier konkret eine Sicherheitslücke?
Zitat:
eval($filestring);
$filestring ist doch eindeutig oder?
- $file_= "http://webfan.de/w/tpl/global_menu.php.tpl";
$filestring = file_get_contents($file_);
- $file_="http://webfan.de/w/cache_1/".$_WEBFAN_accesskey.".htm.cache";
$filestring = @file_get_contents($file_);

Wenn ich nichts übersehen habe sollte $filestring immer eindeutig und nicht manipulierbar sein, oder täusche ich mich?

mfg

Geändert von Homepagespeicher (19.08.2006 um 15:21 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 15:54 Nach oben    #15
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

du liest den content einer fremden seite aus und evaluierst ihn. sprich du behandelst den string, als wäre er php-code.
wenn jetzt irgendwo code drin steht, wird er ausgewertet anstatt einfach nur angezeigt.
zur inhaltswiedergabe ist echo $filestring; einzige was du brauchst.
schon is die gefahr von gefährlichen code gebannt...

außerdem: warum machst du file_get_content wenn die datei selbst auf deinem server liegt? da reicht doch ein include auch aus....
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 16:25 Nach oben    #16
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Zitat:
wenn jetzt irgendwo code drin steht, wird er ausgewertet anstatt einfach nur angezeigt.
Das soll er doch auch! Sonst bekäme ja der User(also der Surfer) den Html Code zu sehen.
Zitat:
außerdem: warum machst du file_get_content wenn die datei selbst auf deinem server liegt? da reicht doch ein include auch aus....
Zur Zeit hab ich Webspace auf 2 Servern, deshalb...
... die Endlösung soll ein möglichst dezentrales "Netzwerk", p2p in php quasi werden... möglichst ohne die hässlichen frames.

Das Menu wird beispielsweise auf webfan.de und startforum.de angezeigt.
Außerdem möchte ich die Möglichkeit anbieten das Menu auch auf anderen Seiten einzubinden.
Wenn ich ein System für mich gefunden habe soll das Angebot(/Menu) erweitert werden.
...

Ein Endlosthema...

mfg

EDIT:
- OK. Werd mal schauen, für die html Wiedergabe dürfte ein echo reichen...
EDIT[2]:
- So hab das zweite eval durch echo ersetzt...

mfg

Geändert von Homepagespeicher (19.08.2006 um 16:33 Uhr)
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 18:50 Nach oben    #17
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Zitat:
Das soll er doch auch! Sonst bekäme ja der User(also der Surfer) den Html Code zu sehen.
Hä? der bekommt html-code genauso wenig zu sehen wir bei der anzeige einer *.html-datei.
Zitat:
So hab das zweite eval durch echo ersetzt...
und wo war nun das problem?
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 19:28 Nach oben    #18
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Zitat:
Hä?
Hab ich nicht sofort geschnallt - deshalb direkt aber quasi beim posten editiert und im code korrigiert, thx.
Zitat:
und wo war nun das problem?
N.P.
Ein Einwand wäre dabei jedoch theoretisch, es könnte sich in einem anderen Fall auch um php oder anderen Code handeln.

Ich suche wie gesagt Wege frames zu vermeiden bei Anwendungen die auf verschiedene Domains/Server verteilt sind, ganz allgemein erstmal.
(Das die Beispiele oben mit dem Menu trotzdem noch im frame sind liegt wohl daran daß ich erstmal durch die templatesysteme der Seiten da durchsteigen muß...)

mfg
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 19:35 Nach oben    #19
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Ich denke du hast ein kleines Logikproblem. Du denkst zu komplex
Hol dir die Daten die du haben willst (file_get_content()), dann bereitest du sie so auf, dass du sie ausgeben könntest und packst das, was du "gesammelt" hast, einfach in ein Div oder eine Tabellenzelle und gut ist.

Ich würde gar nicht erst auf die Idee kommen, Frames zu nutzen
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 19:54 Nach oben    #20
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Zitat:
Ich denke du hast ein kleines Logikproblem.
Ich hab so viele Probleme
Zitat:
Du denkst zu komplex