php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Sonstiges > Off-Topic Diskussionen
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Off-Topic Diskussionen Kein Platz für Deine Frage gefunden? Dann bist Du hier genau richtig!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #61 (permalink)  
Alt 06-10-2009, 16:01
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Nun ich wollte dir nicht auf die Füsse treten.
Ich nehme an das du Probleme mit dem Einsatz der Smartyscriptsprache meinst, die Engine selbst ist ausserordentlich stabil.
Das sind keine Smartybugs das sind dann selbst fabrizierte über Templates, das muss man schon unterscheiden.
Du hast dich also mit den Fehlern anderer auseinandergesetzt, die im Zusammenhang mit Templates stehen.
Also kurz gesagt: Wenn ein Fehler auftritt, ist immer derjenige Schuld, der das Template geschrieben hat, und niemals Smarty selber. Hab ich das korrekt so zusammengefasst?
Mit Zitat antworten
  #62 (permalink)  
Alt 06-10-2009, 16:05
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Also kurz gesagt: Wenn ein Fehler auftritt, ist immer derjenige Schuld, der das Template geschrieben hat, und niemals Smarty selber. Hab ich das korrekt so zusammengefasst?
Smarty selbst ist seit langer Zeit so gut wie Bug frei, die Frage kannst du dir selbst bestätigen.
Mit Zitat antworten
  #63 (permalink)  
Alt 06-10-2009, 16:06
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Tut mir leid, jeder der sich mal mit CMS - Entwicklung beschäftigt hat wird dir sagen, das dieses ein gediegener Unsinn ist - veraltete Ansicht.
Ob das nun direkter Code ist oder indirekter (z.B. Smarty) ist dabei völlig unerheblich.
Ich kenne dein CMS nicht. Erzähl doch mal, wie es funktioniert!
Kann der CMS-User in eine Textarea beliebigen PHP-Code schreiben, der wird dann in der DB gespeichert und beim Aufruf der Seite ge-eval't?
Junge junge, so ein Produkt würde ich niemandem empfehlen!

Was du weiter oben beschreibst, lösen andere CMS ungefähr so: Ein Modul bietet einen Block an. Der CMS-User kann den Block auf der Seite platzieren und ggf. konfigurieren. Bei der Konfiguration kann er vielleicht weitere Blöcke von anderen Modulen "einbetten". Dazu genügt aber ein Auswahldialog und ggf. weitere Konfigurationsschritte. Der CMS-User muss und darf keine einzige Zeile Code schreiben. Das ist sicher. Das ist einfach. Das ist gut.
Mit Zitat antworten
  #64 (permalink)  
Alt 06-10-2009, 16:07
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Smarty selbst ist seit langer Zeit so gut wie Bug frei, die Frage kannst du dir selbst bestätigen.
Komisch, dass ich dann immer wieder neuen Bugs über den Weg laufe.
Mit Zitat antworten
  #65 (permalink)  
Alt 06-10-2009, 16:20
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Ich kenne dein CMS nicht.
Tja du wisst ja wo man downloaden kann.

Vielleicht hast du auch schon mal was von Rechten gehört und dem Unterschied zwischen ein CMS und einem Portalsystem.
Ich schreibe keine Portalsysteme als Opensource.
Mit Zitat antworten
  #66 (permalink)  
Alt 06-10-2009, 16:30
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich will dein CMS aber nicht erst runterladen, installieren und durchklicken müssen.
Warum bist du nicht bereit, kurz zu beschreiben wie und warum du in deinem CMS eval() einsetzt? Soviel Gesprächsbereitschaft muss schon sein.
Mit Zitat antworten
  #67 (permalink)  
Alt 06-10-2009, 16:37
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Habs inzwischen mal runtergeladen und nach eval() gesucht. Erster Fundort /lib/classes/class.usertagoperations.inc.php:54
PHP-Code:
if (!(@eval('function '.$functionname.'(&$params, &$smarty) {'.$code.'}') === FALSE)) 
    
$result call_user_func_array($functionname, array(&$params, &$smarty)); 
Ein weiterer Treffer in verwaltung/adduserplugin.php:81
PHP-Code:
@ob_start();
            if (eval(
'function testfunction'.rand().'() {'.$code.'}') === FALSE)
            {
                
$error[] = lang('invalidcode');
                                
$buffer ob_get_clean();
                                
$error[] = preg_replace('/<br \/>/'''$buffer );
                
$validinfo false;
            }
            else
                
ob_end_clean(); 
Du verwendest eval() hier beide Male um zu prüfen, ob der Code, der offensichtlich vom CMS-User eingegeben wurde, valider PHP-Code ist. Liege ich damit richtig?
Was passiert, wenn der CMS-User "} unlink(__FILE__); {}" eingibt?

Geändert von onemorenerd (06-10-2009 um 16:39 Uhr)
Mit Zitat antworten
  #68 (permalink)  
Alt 06-10-2009, 17:39
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

eval in Templates ist ja eine Sache, um sehr einfach irgendwelche foreachs, etc. in HTML einzubetten, hat so aber nichts mit Smarty zu tun, weil dieses im Endeffekt nur wieder PHP erzeugt und per include + ob rendert.
Deine function-Konstrukte sehen dagegen sehr abenteuerlich aus. Schon mal php -l auf der CLI verwendet? In Kombination mit einer temporären Datei oder Shell-Pipes eine klasse und saubere Sache.
Mit Zitat antworten
  #69 (permalink)  
Alt 08-10-2009, 13:27
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Und von den zahlosen Templateengines die ohne eval das machen können hätte ich gerne noch weitere Referenzen.
Gerade ist mir was über den Weg gelaufen: Templating Engines in PHP - Fabien Potencier Dieses Twig kommt ebenfalls ohne eval() aus.

Das ist übrigens die erste Template Engine, die ich kenne, die sich für DSLs eignet. Denn man kann die Template-Sprache nicht nur erweitern, sondern auch bestehende Tags überschreiben und sogar den AST manipulieren. Das sind Features, die PHP als Template Engine nicht bietet und damit hat Twig eine echte Daseinsberechtigung.
Mit Zitat antworten
  #70 (permalink)  
Alt 09-10-2009, 17:13
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Habs inzwischen mal runtergeladen und nach eval() gesucht. Erster Fundort /lib/classes/class.usertagoperations.inc.php:54 ... Du verwendest eval() hier beide Male um zu prüfen, ob der Code, der offensichtlich vom CMS-User eingegeben wurde, valider PHP-Code ist. Liege ich damit richtig?
Was passiert, wenn der CMS-User "} unlink(__FILE__); {}" eingibt?
http://de.php.net/manual/en/function...eck-syntax.php

Da gibts eine Riesenmenge von Userkommentaren, die das PHP-Syntax-Checking-per-Eval()-Problem in den Griff zu bekommen versuchen. Da werden geschweifte Klammern gezählt und halbe PHP-Quellcode-Parser gebaut. Einige Ansätze funktionieren sogar. ;-)

Die Funktion selbst war leider nur kurze Zeit offizieller Bestandteil von PHP.
Mit Zitat antworten
  #71 (permalink)  
Alt 22-12-2009, 18:15
recoil
 Registrierter Benutzer
Links : Onlinestatus : recoil ist offline
Registriert seit: Oct 2009
Beiträge: 5
recoil befindet sich auf einem aufstrebenden Ast
Standard

Danke Piratos fuer deine Vorlage, ich habe es jetzt hinbekommen.
Ich habe es fuer meine Website so in der index.php verwendet

PHP-Code:
<?php include($item['include']);?>
Mit Zitat antworten
  #72 (permalink)  
Alt 22-12-2009, 19:03
ragtek
 Registrierter Benutzer
Links : Onlinestatus : ragtek ist offline
Registriert seit: Dec 2009
Beiträge: 13
ragtek befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Ich kenne dein CMS nicht. Erzähl doch mal, wie es funktioniert!
Kann der CMS-User in eine Textarea beliebigen PHP-Code schreiben, der wird dann in der DB gespeichert und beim Aufruf der Seite ge-eval't?
Junge junge, so ein Produkt würde ich niemandem empfehlen!
Das vB macht es zB so

Aber ja,
Ich würde den Code einmal aus der DB lesen und in eine Datei schreiben(cachen).
Das erspart doch die DB Abfrage.
Mit Zitat antworten
  #73 (permalink)  
Alt 22-12-2009, 22:09
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von ragtek Beitrag anzeigen
Das vB macht es zB so
Wußte ich gar nicht, habe vB aber auch noch nie verwendet oder weiterempfohlen. Werde ich auch nicht.

@fireweasel: Syntaxprüfung ist (wäre?) zwar nett, schützt aber nicht vor semantisch "böswilligem" Code. Das geht nur durch kontrolliertes Ausführen in einer Sandbox (z.B. VM). Im Webumfeld völlig abwegig.
Mit Zitat antworten
  #74 (permalink)  
Alt 23-12-2009, 17:28
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Wußte ich gar nicht, habe vB aber auch noch nie verwendet oder weiterempfohlen. Werde ich auch nicht.
Zitat:
Parse error: syntax error, unexpected T_STRING in /home/medkaau/public_html/vb/index.php(565) : eval()'d code on line 2
Und dieser Angriff wurde nur entdeckt, weil auch der "pöse Hacker" seinen Quellcode vor dem Upload nicht auf Syntax-Fehler gecheckt hat.

Zitat:
@fireweasel: Syntaxprüfung ist (wäre?) zwar nett, schützt aber nicht vor semantisch "böswilligem" Code. Das geht nur durch kontrolliertes Ausführen in einer Sandbox (z.B. VM). Im Webumfeld völlig abwegig.
Wenn ich mich recht erinnere (das ist schon ein Weilchen her), bin ich davon ausgegangen, dass der PHP-Quellcode von einem Menschen eingegeben wird, der dem Webmaster wohlgesonnen ist, also ein Kollege, Mitarbeiter oder der Site-Betreiber selbst. Eingaben anderer Benutzer ist selbstverständlich grundsätzlich Böswilligkeit zu unterstellen. Hab mir den Quellcode des diskutierten CMS aber nicht näher angeschaut.

Ich bin zwar kein notorischer eval()-Gegner, aber wer diese Funktion anwendet, sollte ganz genau wissen, was er oder sie tut. Die meisten wissen das offensichtlich nicht.
Mit Zitat antworten
  #75 (permalink)  
Alt 23-12-2009, 21:20
ragtek
 Registrierter Benutzer
Links : Onlinestatus : ragtek ist offline
Registriert seit: Dec 2009
Beiträge: 13
ragtek befindet sich auf einem aufstrebenden Ast
Standard

Nur um auf Pluginsysteme zurückzukommen.

Im Endeffekt ist es doch egal, ob ein System eval oder etwas anderes benutzt, das eigentliche Problem liegt wie immer beim Benutzer.

Es ist doch egal ob man ein System durch Dateiänderungen laut Anweisung, eval oder require_once verändert.
Über jede von den genannten Möglichkeiten kann böser Code eingeschleust werden
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
drag and drop, includes, mysql


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql table soll include einbinden recoil PHP Developer Forum 10 06-10-2009 16:38
[MySQL/PHP] table prüfen ob table exist php-sebi SQL / Datenbanken 6 26-08-2007 12:14
PHP Include von .php Dateien Table AgentCyber PHP Developer Forum 7 24-09-2006 17:46
4images per include einbinden travelfreak PHP Developer Forum 8 02-06-2006 14:18
Pfad soll im Browser nicht angezeigt werden (OT-TEIL) Wotan Off-Topic Diskussionen 92 19-04-2004 09:42

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 23:56 Uhr.