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: 4 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 12-01-2008, 16:47
PARALAX
 Newbie
Links : Onlinestatus : PARALAX ist offline
Registriert seit: Jan 2008
Ort: Earth
Beiträge: 7
PARALAX ist zur Zeit noch ein unbeschriebenes Blatt
PARALAX eine Nachricht über ICQ schicken
Standard Suche dringend Shoutcast Bannergenerator

Hallo!

Ich suche ein kleines Script, welches in der Lage ist aus 2 vorgefertigten Bilden bzw. Bannern (Online / Offline) einen entsprechenden Banner nach abhängigkeit des Shoutcast-Sendestatusses zu generieren, d.h. das "Online" Bild wird angezeigt, wenn gesendet wird und "Offline" wenn nicht gesendet wird. Der Online-Banner sollte falls möglich direkt im Banner den Songtitel, Interpret sowie Streambeschreibung (Name der Sendung) anzeigen.

Wichtig hierbei ist jedoch, das sich das Script nicht der PHP-Funktion "imagecreatefrompng" bedient, da diese ein Sicherheitsrisiko bedeuten würde.

Der Server ist wie folgt eingestellt:

allow_url_fopen = off
allow_url_include = off

PHP Version ist glaube Ich noch Version 4.3.2

Gibt es evtl. eine Lösung oder vorgefertigtes Script dafür?

Notfalls würde mir auch eine Weiterleitung zu einer bestimmten Grafik weiter helfen, so das man das Ganze per I-Frame machen könnte oder wie auch immer.

Vielen Dank im Voraus.

Geändert von PARALAX (12-01-2008 um 16:50 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 12-01-2008, 16:54
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard Re: Suche dringend Shoutcast Bannergenerator

Zitat:
Original geschrieben von PARALAX

Wichtig hierbei ist jedoch, das sich das Script nicht der PHP-Funktion "imagecreatefrompng" bedient, da diese ein Sicherheitsrisiko bedeuten würde.
Ach, und warum das?
Mit Zitat antworten
  #3 (permalink)  
Alt 12-01-2008, 16:57
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hehe

BTW: Falsches Forum, aber wen wunderts...
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #4 (permalink)  
Alt 12-01-2008, 16:58
PARALAX
 Newbie
Links : Onlinestatus : PARALAX ist offline
Registriert seit: Jan 2008
Ort: Earth
Beiträge: 7
PARALAX ist zur Zeit noch ein unbeschriebenes Blatt
PARALAX eine Nachricht über ICQ schicken
Standard

Weil sich dadurch natürlich auch andere Sachen ausführen lassen, die schädigend sein können.

Nicht gerade eine hilfreiche Antwort von Dir...vorher mal nachdenken wäre nicht schlecht.
Mit Zitat antworten
  #5 (permalink)  
Alt 12-01-2008, 17:00
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PARALAX
Weil sich dadurch natürlich auch andere Sachen ausführen lassen, die schädigend sein können.

Nicht gerade eine hilfreiche Antwort von Dir...
Wenn du hier Käse erzählst, der sich dann leider auch noch bei Google fortpflanzt ist DEINE Aussage anderen Leuten nicht hilfreich. Meine hingegen schon.

Also erzähl doch mal, wo ist imagecreatefrompng() Fehlerbehaftet? Wie kann man andere Sachen ausführen (Kaffee kochen? Nass durchwischen?) die schädigend sein können (Kaffee Nachts kochen? Nass auf Laminat wischen?).
Mit Zitat antworten
  #6 (permalink)  
Alt 12-01-2008, 17:01
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Weil sich dadurch natürlich auch andere Sachen ausführen lassen, die schädigend sein können.
Wie lassen sich denn mittels imagecreatefrompng "andere Sachen" ausführen? Erklär mal bitte.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #7 (permalink)  
Alt 12-01-2008, 17:09
PARALAX
 Newbie
Links : Onlinestatus : PARALAX ist offline
Registriert seit: Jan 2008
Ort: Earth
Beiträge: 7
PARALAX ist zur Zeit noch ein unbeschriebenes Blatt
PARALAX eine Nachricht über ICQ schicken
Standard

Es gab in eine Sicherheitslücke, die erst durch das Einstellen der beiden Funktionen geschlossen werden konnten.

allow_url_fopen = off
allow_url_include = off

Ich muß dazu sagen, das das unser Webmaster veranlasst hat. Denn nachdem diese Funktionen eingestellt wurden, bekomme ich nach dem Aufrufen meines alten Scriptes folgende Meldung:

Zitat:
Warning: imagecreatefrompng() [function.imagecreatefrompng]: URL file-access is disabled in the server configuration in /srv/www/acc1/html/banner/status.php on line 79

Warning: imagecreatefrompng(http://www.meine-webseite.de/banner/Banner_Online.png) [function.imagecreatefrompng]: failed to open stream: no suitable wrapper could be found in /srv/www/acc1/html/banner/status.php on line 79
no image
Vor dem Angriff waren die beiden Funktionen deaktiviert und nun suche ich nach einer Alternative.

P.S.: Es geht auch etwas freundlicher, ihr Lieben...

Geändert von PARALAX (12-01-2008 um 17:13 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 12-01-2008, 17:14
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PARALAX
Es gab in eine Sicherheitslücke, die erst durch das Einstellen der beiden Funktionen geschlossen werden konnten. Ich muß dazu sagen, das das unser Webmaster veranlasst hat. Denn nachdem diese Funktionen eingestellt wurden, bekomme ich nach dem Aufrufen meines alten Scriptes folgende Meldung:

Warning: imagecreatefrompng() [function.imagecreatefrompng]: URL file-access is disabled in the server configuration in /srv/www/web2/html/rp/banner/status.php on line 79
Okay, viel Text, keine Antwort. Ich frage nochmal: Welche Schwachstelle existiert genau in imagecreatefrompng()?



Zitat:
Original geschrieben von PARALAX
[B]Vor dem Angriff waren die beiden Funktionen deaktiviert und nun suche ich nach einer Alternative.
Wenn imagecreatefrompng() vor dem Angriff deaktiviert war, wie kommst du dann darauf, dass es an dieser Funktion gelegen haben soll?

Zitat:
Original geschrieben von PARALAX
P.S.: Es geht auch etwas freundlicher, ihr Lieben...
Du warst es, der mit dem motzen anfing! Wie man in den Wald hineinruft ... kennste sicher!

P.S.: Und wenn du dir die Fehlermeldung mal genau ansehen würdest, wüsstest du auch, dass das alles gar nicht mit der imamgecreatefrompng()-Funktion zu tun hat
Mit Zitat antworten
  #9 (permalink)  
Alt 12-01-2008, 17:18
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit den "Funktionen" meint er sicher die beiden Einstellungen die für das laden externer Resourcen zuständig sind. Den Unterschied zu kennen, würde aber Grundlagenwissen voraussetzen.

Dennoch kann auch ich keine Sicherheitslücke in der Funktion erkennen.

Und dass ihr Torfnasen Parameter ungeprüft in eure Scripte reinlasst, dafür seid ihr selbst verantwortlich. Hat aber alles nichts mit der Imagefunktion zu tun. Folglich war eure Sicherheitslücke ganz wo anders, stimmts?
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #10 (permalink)  
Alt 12-01-2008, 17:20
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
Zitat:
Durch einen schwerwiegenden Systemfehler auf unserem Server sowie Komplikationen mit unserem Webhoster, waren wir in den letzten beiden Tagen weder von unsere Homepage, noch über das Forum erreichbar. Wir bedauern diesen Vorfall sehr, zumal uns auch in diesem Falle keine Schuld traf.
Ja ne, ist klar. Fehlerhafte Scripte nutzen und den Hoster verantwortlich machen.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #11 (permalink)  
Alt 12-01-2008, 17:23
PARALAX
 Newbie
Links : Onlinestatus : PARALAX ist offline
Registriert seit: Jan 2008
Ort: Earth
Beiträge: 7
PARALAX ist zur Zeit noch ein unbeschriebenes Blatt
PARALAX eine Nachricht über ICQ schicken
Standard

Ich hab ja auch nicht gesagt, das ich Programmierer bin. Und zum Thema Sicherheit kann ich nicht viel sagen. Ich weiß nur, das laut seiner Aussage diese Einstellungen von Nöten waren und seitdem funktioniert mein Script nicht mehr.

Ich hatte eigentlich die Hoffnung, das ihr weiter helfen könnt. Scheint aber leider nicht der Fall zu sein.

Nun ja...würde mich trotzdem über eine PN oder Nachricht freuen. Vielleicht bin ich ja hier wirklich falsch. Trotz Allem brauche ich Hilfe oder ggf. eine Alternative. Denn vielleicht geht es ja auch mit einer anderen Funktion.

Und das Script war im Übrigen nicht fehlerhaft. Wer mir helfen möchte, dem händige ich es gerne aus.
Mit Zitat antworten
  #12 (permalink)  
Alt 12-01-2008, 17:31
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein, DAS Script ist vermutlich nicht fehlerhaft, aber wahrscheinlich ein anderes.

Wenn dein Webmaster meint, dass er nur so in der Lage ist das Problem zu beheben, ist das eigentlich schon ein Armutszeugnis, aber gut.

Eine Alternative zu der FKT gibt es nicht (außer im Bezug auf das Format (JPG, GIF)), aber du kannst mittels fsockopen() die Datei auf deinen Server holen.

Zitat:
Vielleicht bin ich ja hier wirklich falsch.
Ja, wer die Forenbeschreibungen liest, merkt das auch vor dem Posten.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #13 (permalink)  
Alt 12-01-2008, 17:31
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PARALAX
Ich hab ja auch nicht gesagt, das ich Programmierer bin. Und zum Thema Sicherheit kann ich nicht viel sagen. Ich weiß nur, das laut seiner Aussage diese Einstellungen von Nöten waren und seitdem funktioniert mein Script nicht mehr.
Das Problem ist, dass du NICHT gesagt hast, dass du PHP nicht beherrschst, denn dann bist du in diesem Teil des Forums an der ganz falschen Adresse. Dein Gesuch ist eher was für "Appz- und Scriptgesuche". Man sollte doch annehmen, dass ein Jemand, der ein Forum betreibt, in der Lage ist, sich ein anderes genau anzusehen und die Regeln zu lesen ...

Zitat:
Original geschrieben von PARALAX
Ich hatte eigentlich die Hoffnung, das ihr weiter helfen könnt. Scheint aber leider nicht der Fall zu sein.
Da wir doch ganz nette Typen sind: Speicher dein "banner_online.png" lokal, und änder den Aufruf in einen relativen auf deinem System. Dann geht es wieder (sofern der Hoster nicht nich mehr geändert hat).

Zitat:
Original geschrieben von PARALAX
Nun ja...würde mich trotzdem über eine PN oder Nachricht freuen. Vielleicht bin ich ja hier wirklich falsch. Trotz Allem brauche ich Hilfe oder ggf. eine Alternative. Denn vielleicht geht es ja auch mit einer anderen Funktion.
Und nochmal: Regeln lesen PNs sind hier deaktiviert!

Bei welchem Hoster bist du denn? Sieht mir schwer nach Plusserver aus.
Mit Zitat antworten
  #14 (permalink)  
Alt 12-01-2008, 17:38
PARALAX
 Newbie
Links : Onlinestatus : PARALAX ist offline
Registriert seit: Jan 2008
Ort: Earth
Beiträge: 7
PARALAX ist zur Zeit noch ein unbeschriebenes Blatt
PARALAX eine Nachricht über ICQ schicken
Standard

Bitte verzeiht mir den Fehltritt bzw. meine Unwissenheit. Auch das man hier keine PN's verschicken kann, war mir nicht bekannt. Deswegen veröffentliche ich jetzt hier einfach den Skript (es ist nur eine Datei namens "status.php"). Sollte Er dennoch einen Fehler enthalten, dürft ihr gern wieder mit mir schimpfen.

PHP-Code:
<?php 

$announce_colour 
$_GET['announce']; 
$song_colour $_GET['song']; 

if ( !
$announce_colour )
{
    
$announce_colour="0,0,0";
}
if ( !
$song_colour )
{
    
$song_colour="0,0,0";


$announce_colour=check_colour_specific$announce_colour ); 
$song_colour=check_colour_specific$song_colour ); 

$ip="62.75.215.179"
$port="8000"
$online="http://www.radio-paralax.de/banner/Banner_Online.png";
$offline="http://www.radio-paralax.de/banner/Banner_Offline.png";

// init
$stream_title="";
$current_song="";
$artist="";
$song="";
$max_zeichenanzahl 44;

$sp = @fsockopen($ip,$port,&$errno,&$errstr,10);
if (
$sp)
{
    
$cast_found false;

    
set_socket_blocking($sp,false); 
    
fputs($sp,"GET /index.html HTTP/1.1\nUser-Agent:Mozilla\n\n"); 
    for(
$i=0$i<30$i++) 
    { 
        if (
feof($sp))
        {
            break; 
// exit if connection broken
        
}
        
$sp_data.=fread($sp,1024); 
        
usleep(500000); 
    } 
    
$lines=split("/\n",$sp_data); 
    foreach (
$lines as $line
    {
        if ( 
preg_match("/SHOUTcast/",$line ) )
        {
            
$cast_found true;
        }
    }

    
// retrieve stream title, current song
    // -> $data_block['stream_title']
    // -> $data_block['current_song']
    
if ($cast_found
    {
        
$lines =split("<tr>",$sp_data);
        foreach (
$lines as $line
        {
            if (
preg_match("/Stream Title:/"$line)) 
            {
                
$stream_title retrieve_data"Stream Title:"$line ,"<b>" ,1101"</b>");
            }
            if (
preg_match("/Current Song:/"$line)) 
            {
                
$current_song retrieve_data"Current Song:"$line ,"<b>" ,11,,"</b>");
            } 
        } 
    }
}

// -> im
if (    ($stream_title != "") &&
    (
$current_song != "") )
{
    
$im imagecreatefrompng($online); /* Attempt to open */ 
    
if (!$im)
    {
        print 
"no image\n"; exit(0);
    }

    
$info"Aktueller Song:";
    
$tmp split(" - "$current_song);
    
$artist $tmp[0];
    
$song $tmp[1];
    if (
strlen($current_song) > $max_zeichenanzahl)
    {
        
$current_song substr($current_song0$max_zeichenanzahl-3)."...";
    }
    
    
$stream_title"auf ".$stream_title
    if (
strlen($stream_title) > $max_zeichenazahl)
    {
        
$stream_title substr($stream_title0$max_zeichenanzahl-3)."...";
    }

}
else
{
    
$im imagecreatefrompng($offline); /* Attempt to open */ 
}

// we are delivering an image
Header("Content-type: image/png"); 

// set up colors
$colour_array split (","$announce_colour ); 
$text_colour1 ImageColorAllocate($im$colour_array[0], $colour_array[1], $colour_array[2]); 

$colour_array split (",",$song_colour ); 
$text_colour2 ImageColorAllocate($im$colour_array[0], $colour_array[1], $colour_array[2]); 

# this is image pointer,1,xpos, ypos, string, colour 
ImageString($im,2,200,0,$info,$text_colour1);
ImageString($im,2,200,15,$current_song,$text_colour2);
ImageString($im,2,200,30,$stream_title,$text_colour2);
ImagePng($im); 
ImageDestroy($im); 
exit(
0); 

function 
retrieve_data (
        
$match,
        
$string,
        
$split,
        
$pos1,
        
$pos2,
        
$white,
        
$chop,
        
$chopper)

    
$array split($match$string);
    
$array split($split,$array[$pos1]);
    if ( 
$white )
    {
        
$array[$pos2] = ereg_replace(" """$array[$pos2]);
    } 
    if ( 
$chop )
    {
        
$array split($chopper$array[$pos2] );
    } 
    else
    {
        
$array[0] = $array[$pos2];
    } 
    
$version $array[0]; 
    return 
$version


function 
check_colour_specific $colour_string 

    
$colour_arraysplit (",",$colour_string ); 
    
$colour_count =0
    foreach ( 
$colour_array as $colour 
    {
        if ( 
$colour<|| $colour>255 
        {
            
$colour_array[$colour_count]="0";
        } 
        
$colour_count++;
    }
    if ( 
$colour_count<)
    {
        return 
"0,0,0";
    }
    return ( 
$colour_array[0].",".$colour_array[1].",".$colour_array[2] ); 


?>
Der Banner befindet sich auf dem Webspace im Verzeichnis "banner".

Zitat:
Da wir doch ganz nette Typen sind: Speicher dein "banner_online.png" lokal, und änder den Aufruf in einen relativen auf deinem System. Dann geht es wieder (sofern der Hoster nicht nich mehr geändert hat).
Sorry aber kannst Du mir das nochmal genauer erläutern? Vielen Dank!

Geändert von PARALAX (12-01-2008 um 17:51 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 12-01-2008, 17:45
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und nochmals: REGELN! Wozu gibt es hier[php ]php-Tags[/ php]?

Du sollst "on line 79" den Pfad zum Banner anpassen, so dass dieser auf deinen Lokalen Banner zeigt!

BTW: Wenn dein Script den lokalen Banner tatsächlich über HTTP einbindet, dann ... So viel zum Thema das Script ist nicht buggy.
__________________
ICH BIN ICH!!!
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 09:42 Uhr.