Ankündigung

Einklappen
Keine Ankündigung bisher.

Sicherung von Include

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherung von Include

    Hi Forum,

    bin grad bei so einer Überlegung

    Ich möchte gerne, dass man die Dateien, die included werden (bzw per require eingefügt werden) nicht direkt aufrufen darf.

    Hab mir das so gedacht:

    index.php
    PHP-Code:
    <?php
      
    function check_include($var) {
        if(
    $var === true AND isset($_SESSION['user']['id']) AND !empty($_SESSION['user']['id'])) {
          return 
    true;
        } else {
          return 
    false;
        }
      }
      require 
    'include.php';
    ?>
    include.php
    PHP-Code:
    <?php
      
    @check_include($inc_check) OR die('NEIN!!!!111');
    ?>

    Blablablaa

    Weiterer text unso
    Ist das so sinnvoll, wie ich es mache? Oder geht es noch besser, einfacher oder sonst irgendwie anders?

    Danke für eure Hilfe und Anregungen vielleicht wirds ja ne heiße Diskussion

    Grüße
    Da Psy
    "Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)


  • #2
    der einfachste Weg wäre wahrscheinlich der:

    index.php
    Includes
    |--.htaccess
    |--include1.php
    |--include2.php
    |--...


    und mit der.htaccess gibst einfach ein deny from all rein..


    Warum ich das "so toll und plastisch" zeichne?

    mir ist langweilig



    lg
    Andi

    Kommentar


    • #3
      Naja, mein Aufbau ist schon so ähnlich

      index.php
      mods
      |--pointsystem
      |--|--include1.php
      |--|--include2.php
      |--|--includeN.php
      |--core
      |--|--include1.php
      |--|--include2.php
      |--|--includeN.php

      Warum ich das so toll mach wie du? Ich will net arbeiten

      htaccess wollte ich so eigentlich nicht verwenden, da ich es nicht so ganz steuern kann

      Ausnahmen kann es nämlich geben, dass so manch eine Datei doch mal so geöffnet werden darf, ohne dass sie im Template oder so geladen wird ausserdem wärs auch zu einfach und es wird nicht mehr diskutiert

      Finde das Thema mal etwas anderes und nicht so standard banal fragen (naja vielleicht doch?) wie man jeden Tag liest :wink:

      Grüße
      Da Psy
      "Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)

      Kommentar


      • #4
        hehe

        wenn ich ehrlich bin mache ich es auf einer meiner seiten ähnlich.. hab aber grad den sourcecode ned..

        sieht ungefähr so aus...
        check.php
        PHP-Code:
        <?php
          
        if(!isset($ROOTFILE) OR !$ROOTFILE){
            die(
        "Sie haben keine Berechtigung diese Seite zu betreten!");
          }
        ?>
        und dann in der index.php irgendwo ganz oben
        PHP-Code:
        <?php
        $ROOTFILE 
        true;
        ?>

        jede "geschützte" Seite hat halt dann am Anfang ein include("check.php");


        Ich schätze mal der Ansatz is klar und leicht nachzuvollziehen.. Bei dieser Methode könnte halt das register_globals (welches ich immer auf off habe) ein problem sein.


        Außerdem gibt es sicher bessere methoden das zu schützen,... für die eine kleine page bei der ich es verwende reicht es


        lg
        Andi

        Kommentar


        • #5
          PHP-Code:
          <?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
          //Code
          ?>
          "Nobody is as smart as everybody" - Kevin Kelly
          — The best things in life aren't things

          Kommentar


          • #6
            Bei mir wird ne Modul-ID ausgelesen und ein switch überprüft, welche Seite included werden muss. Zuvor prüft ne Funktion ob der User Berechtigung hat die Seite anzuzeigen. Wenn nicht, wird die Modul-ID auf 0 gesetzt, was im Switch immer auf "forbidden.html" führt
            Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
            Mark Twain

            Kommentar


            • #7
              Die weitverbreitetste ist wohl tatsächlich per Endung (*.inc einfach per htaccess verbieten aufzurufen), per Verzeichnis (wieder htaccess, schließlich hat man meistens die Rechte htaccess zu seten) oder eben per phpdummi's Methode. Letzteres ist halt mühselig.

              Ich unterteile meine Projekte meist in private/protected/public Ordner, wenns geht ist public dabei DocumentRoot, protected sind nur freigeschaltet für htaccess-angemeldete und in private liegen alle Klassen, includes, Konfigs etc.

              Kommentar


              • #8
                Ich unterteile meine Projekte meist in private/protected/public Ordner, wenns geht ist public dabei DocumentRoot, protected sind nur freigeschaltet für htaccess-angemeldete und in private liegen alle Klassen, includes, Konfigs etc.

                So in etwa mach ich es auch normalerweise.. variiert aber (is ein bisschen nervig.. ich sollte das Ganze mal vereinheitlichen, dann wirds leichter zum wiederverwenden ^^)

                lg
                Andi

                Kommentar

                Lädt...
                X