tutorials.de Buch-Aktion 05/2012
Like Tree5Danke
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Flex
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Flex
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
253
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Hallo.

    Ich wollte HTML-Code in eine extra Datei auslagern und ins PHP-Skript includen. Dazu habe ich folgende Fragen.

    1. Kann ich alles an HTML-Code includen ohne eine Sicherheitslücke zu öffnen? Kann ich ein Formular mit allem was dazu gehört includen?
    2. Kann ich auch JS-Code includen?
    3. Kann ich auch PHP-Variablen Includen?

    Beispiel zu Frage 3:
    PHP-Code:
    $Variable='Ich bin eine Variable'
    PHP-Code:
    $Variable='Ordner/Avatars/'
    PHP-Code:
    $Variable=$Ordner.$Avatars
    Ich include den HTML-Code so:
    PHP-Code:
    <?php require('./PHP/PHP-Include.php'); ?>
    Wäre es so richtig?

    Wenn ich HTML-Code Includen will, kann ich dan auch mitten im Code einfach require('./PHP/PHP-Include.php'); einfügen oder muss der Code in PHP-Start-Tag und PHP-End-tag gesetzt werden?
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    1)Ja
    2)Ja
    3)Ja
    http://ch.php.net/manual/en/function.include.php

    Ich versteh nicht was du mit deinen Beispielen darstellen willst.
    Alice bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Hallo yaslaw.

    Du hast ja mein PHP-Skript gesehen. Ich möchte den HTML-Code der vorher quasi um das PHP-Skript herum (in einer Datei) war auslagern. Kann man eigentlich irgendwie sehen das HTML-Code includet wurde?

    Zu den Beispielen:
    Ich habe gelesen das die Befehle Include und Require Sicherheitslücken öffnen können. Nur verstehe ich nicht wann das genau passiert.

    ich definiere eine Variable in der PHP-Include.php Datei:
    PHP-Code:
    $Variable='Ordner/Avatars/'
    Die Variable "$Variable" möchte ich jetzt in anderen PHP-Skripts verwenden. Wie genau muss ich das einbauen damit keine Sicherheitslücke geöffnet wird?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Sichehrehitslücken musst du andere fragen...

    Hab mal rasch einen kleinen Test gemacht, der dir Zeigt wie das zusammenabreiten kann
    - HTML
    - Variablen
    - variable Includes

    inc.php
    PHP-Code:
    <b>Fetter Text</b>
    <br />
    <?php 
        
    echo $foo;
        
    $bar='bar'
    ?>
    test.php
    PHP-Code:
    <?php
    $fileForInclude 
    'inc.php';
    $foo 'foo';
    include(
    $fileForInclude);
    echo 
    $bar;
    ?>
    Ausagbe
    Fetter Text
    foobar
    Alice bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Die Sicherheitslücken werden können geöffnet werden, falls du Werte aus der URL direkt im Befehl verarbeitest und nicht vorher prüfst oder, sogar noch besser, eine Whitelist einsetzt.

    Beispiel:
    PHP-Code:
    <?php
    include($_GET['site']);
    ?>
    Mal als ganz schlechtes Beispiel.
    Dadurch kann sich ein Nutzer Zugriff auf eventuelle Konfigurationsdateien o. ä. zugreifen.

    Noch kritischer wird das, wenn die Option allow_url_include aktiv ist, dann kann der Nutzer sogar Dateien von anderen Webserver einbinden und Fremd- bzw. Schadcode ausführen.
    Alice bedankt sich. 
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  6. #6
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Das Skript soll aus mehreren Variablen eine URL erstellen, um an die nötigen Grafiken zu kommen.

    Beispiel:

    Die Grafiken sind in den Ordner:

    Ordner/Noch-Ein-Ordner/Image-A/
    Ordner/Noch-Ein-Ordner/Image-B/
    Ordner/Noch-Ein-Ordner/Image-C/

    gespeichert.

    Inhalt der Inc.php
    PHP-Code:
    $Pfad1='Ordner/';
    $Pfad2='Noch-Ein-Ordner/';
    $Pfad1='Image-'.$VAR.'/'// Wert A, B oder C wird durch ein Formularfeld (Radio-Button) ermittelt 
    Inhalt der Test.php
    PHP-Code:
    Grafiken $Pfad1.$Pfad2.$Pfad3
    Wäre das so okey und sicher?

    Edit:

    Ich habe da noch eine Frage.

    Wenn ich zwei verschiedene Dateien nacheinander Include, vermischt sich der Quelltest. Wie kann ich das problem lösen?

    PHP-Code:
    require('./PHP/PHP-Include1.php');

    require(
    './PHP/PHP-Include2.php'); 
    Inhalt von PHP-Include1.php:
    HTML-Code:
            <table align="center" border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse" width="100%">
              <tr>
                <td width="100%" align="center"><b>HTML-Code 1</b></td>
              </tr>
            </table>
    Inhalt von PHP-Include2.php:
    HTML-Code:
            <table align="center" border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse" width="100%">
              <tr>
                <td width="100%" align="center"><b>HTML-Code 2</b></td>
              </tr>
            </table>
    Ausgabe (Quelltext):
    HTML-Code:
            <table align="center" border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse" width="100%">
              <tr>
                <td width="100%" align="center"><b>HTML-Code 1</b></td>
              </tr>
            </table><table align="center" border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse" width="100%">
              <tr>
                <td width="100%" align="center"><b>HTML-Code 1</b></td>
              </tr>
            </table>
    Geändert von Alice (08.03.10 um 16:40 Uhr)
     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ja. Sofern du bei Grafiken noch ein $ davor setzt, damit es auch eine Variable ist.

    Nachtrag:
    Aber Grafiken kann man nicht mit include() oder reqiure() öffnen....
    Alice bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  8. #8
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Nachtrag:
    Aber Grafiken kann man nicht mit include() oder reqiure() öffnen....
    Ich möchte ja nur den Pfad zum Grafik-Ordner definieren. Also das Skript muss ja wissen wo die Grafiken gespeichert sind. Also ist das keine Sicherheitlücke?

    Ich hatte meinen Beitrag (Siehe oben) editiert. Vielleicht kannst du mir dabei auch noch helfen?
     

  9. #9
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Grundsätzlich nicht, da es ja ein relativ kleiner Wirkungsraum ist, aber aus Sicherheitsgründen, man weiß nie was da so alles reinkommt, würde ich es so machen:

    PHP-Code:
    $whitelist = array('A''B''C');
    if(
    in_array($_POST['radiobutton'], $array))
    {
      
    $var $_POST['radiobutton'];  // Auswahl im Formular ist ok
    }
    else
    {
      
    $var 'A'// Standardwert, es wurde versucht einen anderen Wert zu übermitteln

    Alice bedankt sich. 
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Oder du erstellst am Anfang des Scriptes gleich alle Variablen die mit einer Whitelist definiert sind. Im Script graifst du dann nicht mehr auf $_POST zu.
    http://wiki.yaslaw.info/wikka/PhpPost2Var

    hm.... könnte mein Beipsiel noch mit Default-Werten so erweitern.. coole Idee *g*
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Include/require
    Von Napofis im Forum PHP
    Antworten: 6
    Letzter Beitrag: 09.03.09, 21:46
  2. include/require und ie
    Von buddymaster im Forum PHP
    Antworten: 9
    Letzter Beitrag: 29.11.08, 14:29
  3. require() + include()
    Von puetz im Forum PHP
    Antworten: 3
    Letzter Beitrag: 21.01.05, 20:24
  4. Unterschied zw. include() und require()
    Von Lemieux66 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 27.09.02, 19:23
  5. include bzw require
    Von BlackJack im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.11.01, 21:47