Avatar billede sorenbs Nybegynder
02. december 2004 - 18:57 Der er 13 kommentarer og
1 løsning

beskytte filer

Jeg har nogle sider der er beskyttede med kodeord, men jeg har også en opload funktion.
Er det muligt at beskytte de filer jeg oploader, så man kun kan se dem hvis man er logged ind?
Avatar billede wickedd Juniormester
02. december 2004 - 19:01 #1
Der ville jeg nok bruge .htaccess til at beskytte hele mappen der uploades til.
Kig her: http://www.webcafe.dk/artikler/apache/htaccessintro/
Avatar billede wickedd Juniormester
02. december 2004 - 19:02 #2
Avatar billede sorenbs Nybegynder
02. december 2004 - 19:05 #3
OK, det kigger jeg lidt på.
Avatar billede sorenbs Nybegynder
02. december 2004 - 19:16 #4
Så vidt jeg kan se, erstatter det mit oprindelige loginsystem. Er det muligt at integrere de to, så man har adgang til filerne, når man har logget ind på mine phpsider?
Eller er dette system mere sikkert.
Avatar billede googolplex Novice
02. december 2004 - 21:40 #5
htaccess er i hvert fald ekstremt sikkert!
Avatar billede sorenbs Nybegynder
03. december 2004 - 13:08 #6
Så lyder det jo lige som noget for mig :)
Holder det også spambots ude?
Vil det være en god ide at kombinere det med mit gamle php/mysql-system, eller er det ikke nødvendigt?
Avatar billede googolplex Novice
03. december 2004 - 14:44 #7
Ja, det holder alt ude :)
Nej, du skal ikke kombinere det, det er unødvendigt mht. sikkerheden.
Avatar billede googolplex Novice
03. december 2004 - 14:46 #8
Du kan eventuelt manipulerer din .htacces fil med en klasse som denne i forbindelse med et brugersystem:

<?

/**
* Class for handling htaccess of Apache
* @author    Sven Wagener <sven.wagener@intertribe.de>
* @copyright Intertribe - Internetservices Germany
* @include     Funktion:_include_
*/

class htaccess{
    var $fHtaccess=""; // path and filename for htaccess file
    var $fHtgroup="";  // path and filename for htgroup file
    var $fPasswd="";  // path and filename for passwd file
   
    var $authType="Basic"; // Default authentification type
    var $authName="Internal area"; // Default authentification name

    /**
    * Initialising class htaccess
    */
    function htaccess(){
    }

    /**
    * Sets the filename and path of .htaccess to work with
    * @param string    $filename    the name of htaccess file
    */
    function setFHtaccess($filename){
        $this->fHtaccess=$filename;
    }
   
    /**
    * Sets the filename and path of the htgroup file for the htaccess file
    * @param string    $filename    the name of htgroup file
    */
    function setFHtgroup($filename){
        $this->fHtgroup=$filename;
    }
   
    /**
    * Sets the filename and path of the password file for the htaccess file
    * @param string    $filename    the name of htgroup file
    */
    function setFPasswd($filename){
        $this->fPasswd=$filename;
    }

    /**
    * Adds a user to the password file
    * @param string $username    Username
    * @param string $password    Password for Username
    * @param string $group        Groupname for User (optional)
    * @return boolean $created        Returns true if user have been created otherwise false
    */
    function addUser($username,$password,$group=""){
        // checking if user already exists
        $file=@fopen($this->fPasswd,"r");
        $isAlready=false;
        while($line=@fgets($file,200)){
            $lineArr=explode(":",$line);
            if($username==$lineArr[0]){
                $isAlready=true;
            }
        }
       
        if($isAlready==false){
            $file=fopen($this->fPasswd,"a");
           
            if(strtolower(substr($_ENV["OS"],0,7))!="windows"){
                $password=crypt($password);
            }
           
            $newLine=$username.":".$password."\n";

            fputs($file,$newLine);
            fclose($file);
            return true;
        }else{
            return false;
        }
    }

    /**
    * Adds a group to the htgroup file
    * @param string $groupname    Groupname
    */
    function addGroup($groupname){
        $file=fopen($this->fHtgroup,"a");
        fclose($file);
    }

    /**
    * Deletes a user in the password file
    * @param string $username    Username to delete
    * @return boolean $deleted    Returns true if user have been deleted otherwise false
    */
    function delUser($username){
        // Reading names from file
        $file=fopen($path.$this->fPasswd,"r");
        $i=0;
        while($line=fgets($file,200)){
            $lineArr=explode(":",$line);
            if($username!=$lineArr[0]){
                $newUserlist[$i][0]=$lineArr[0];
                $newUserlist[$i][1]=$lineArr[1];
                $i++;
            }else{
                $deleted=true;
            }
        }
        fclose($file);

        // Writing names back to file (without the user to delete)
        $file=fopen($path.$this->fPasswd,"w");
        for($i=0;$i<count($newUserlist);$i++){
            fputs($file,$newUserlist[$i][0].":".$newUserlist[$i][0]."\n");
        }
        fclose($file);
       
        if($deleted==true){
            return true;
        }else{
            return false;
        }
    }
   
    /**
    * Returns an array of all users in a password file
    * @return array $users        All usernames of a password file in an array
    * @see setFPasswd()
    */
    function getUsers(){
    }
   
    /**
    * Sets a password to the given username
    * @param string $username    The name of the User for changing password
    * @param string $password    New Password for the User
    * @return boolean $isSet      Returns true if password have been set
    */   
    function setPasswd($username,$new_password){
        // Reading names from file
        $newUserlist="";
       
        $file=fopen($this->fPasswd,"r");
        $x=0;
        for($i=0;$line=fgets($file,200);$i++){
            $lineArr=explode(":",$line);
            if($username!=$lineArr[0] && $lineArr[0]!="" && $lineArr[1]!=""){
                $newUserlist[$i][0]=$lineArr[0];
                $newUserlist[$i][1]=$lineArr[1];
                $x++;
            }else if($lineArr[0]!="" && $lineArr[1]!=""){
                $newUserlist[$i][0]=$lineArr[0];
                $newUserlist[$i][1]=crypt($new_password)."\n";
                $isSet=true;
                $x++;
            }
        }
        fclose($file);

        unlink($this->fPasswd);

        /// Writing names back to file (with new password)
        $file=fopen($this->fPasswd,"w");
        for($i=0;$i<count($newUserlist);$i++){
            $content=$newUserlist[$i][0].":".$newUserlist[$i][1];
            fputs($file,$content);
        }
        fclose($file);

        if($isSet==true){
            return true;
        }else{
            return false;
        }
    }

    /**
    * Sets the Authentification type for Login
    * @param string $authtype    Authentification type as string
    */
    function setAuthType($authtype){
        $this->authType=$authtype;
    }

    /**
    * Sets the Authentification Name (Name of the login area)
    * @param string $authname    Name of the login area
      */
    function setAuthName($authname){
        $this->authName=$authname;
    }

    /**
    * Writes the htaccess file to the given Directory and protects it
    * @see setFhtaccess()
      */
    function addLogin(){
      $file=fopen($this->fHtaccess,"w+");
      fputs($file,"Order allow,deny\n");
      fputs($file,"Allow from all\n");
      fputs($file,"AuthType        ".$this->authType."\n");
      fputs($file,"AuthUserFile    ".$this->fPasswd."\n\n");
      fputs($file,"AuthName        \"".$this->authName."\"\n");
      fputs($file,"require valid-user\n");
      fclose($file);
    }

    /**
    * Deletes the protection of the given directory
    * @see setFhtaccess()
    */
    function delLogin(){
        unlink($this->fHtaccess);
    }
}
?>
Avatar billede sorenbs Nybegynder
03. december 2004 - 17:01 #9
Ok, tak skal du have.
Er det muligt at undlade at beskytte en enkelt fil i en mappe, men beskytte alt andet?
Avatar billede sorenbs Nybegynder
15. marts 2005 - 21:28 #10
kom med nogle svar.
Avatar billede sorenbs Nybegynder
25. marts 2005 - 01:50 #11
Kom med et svar begget to, det virker jo, og nu skal jeg have rodet lidt op:-)
Avatar billede googolplex Novice
25. marts 2005 - 15:38 #12
:)
Avatar billede sorenbs Nybegynder
28. marts 2005 - 17:15 #13
Så mangler vi jo bare wickedd :)
Avatar billede sorenbs Nybegynder
16. april 2005 - 10:55 #14
wickedd må henvende sig hvis han føler sig snydt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester