Avatar billede vizion Nybegynder
16. marts 2003 - 20:35 Der er 15 kommentarer og
1 løsning

Sikkert login script. 200 point.

Jeg søger et sikkert login script. Der skal kun være en bruger.

Det skal ikke være sådan man kan skrive: www.clan.dk/du-er-nu-logget-ind.php men man SKAL skrive username + pass. Hvis man ikke har skrevet+username + pass, skal den komme op med: "You forgot something. Try again."

Det skal være sådan man kan adde flere sider. F.eks.
Den side man kommer ind på når man logger på hedder www.clan.dk/admin/logged-in.php så derinde skal der være links til news-add, news-delete, delete-tagwall osv.
Altså: Der skal være flere sider man kan bruge NÅR man er logget ind. Men de sider stadig høre under den ene gang man logger ind.

Der er 200 point ude, så kom med noget godt
Avatar billede sqren Nybegynder
16. marts 2003 - 20:37 #1
brug .htaccess

<?php
// Instant Protect by Eugene Zossimov: rossos@avacom.net
// Thank you for using Instant Protect
//
// USAGE:
// CHMOD desired directory to 777
// Upload this file to the directory you just "CHMODED"...
// Call the script: http://www.yourdomain.com/your_yet_unprotected_directory/protect.php
// After protecting your directory, CHMOD it to 755 if you want...


if ($submit)
{
$username = $_POST["user"];
$password = $_POST["pass"];
$authname = $_POST["authname"];
$file1 = ".htpasswd";
$file2 = ".htaccess";
$curdir = getcwd();
$md1945 = crypt($password);
$htpasswd = "$username:$md1945";
$htaccess = "AuthType Basic\r\n";
$htaccess .= "AuthUserFile $curdir/.htpasswd\r\n";
$htaccess .= "AuthGroupFile /dev/null\r\n";
$htaccess .= "AuthName ".$authname."\r\n";
$htaccess .= "Require valid-user\r\n";

$fp = fopen($file1, "w") or die("Couldn't open HTPASSWD for writing!");
$numBytes = fwrite($fp, $htpasswd) or die("Couldn't create file!");

fclose($fp);

$fp2 = fopen($file2, "w") or die("Couldn't open HTACCESS for writing!");
$numBytes2 = fwrite($fp2, $htaccess) or die("Couldn't create file!");

fclose($fp2); ?>
<div align="center">
  <p>&nbsp;</p>
  <p><font color="#FF0000" size="3" face="Arial, Helvetica, sans-serif"><strong>Dit bibliotek er nu beskyttet</strong></font></p>
</div>

<?php
}

?>

<html>
<head>
<title>INSTANT PROTECT</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function instantprotectval() {
  var args = instantprotectval.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(parseInt(myV))||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td bgcolor="#CCCCCC"><form name="form1" method="post" action="protect.php">
              <p align="center"><strong><font size="3" face="Arial, Helvetica, sans-serif">Indtast det ønskedede brugernavn og password</font></strong></p>
              <table width="280" border="0" align="center" cellpadding="2" cellspacing="0">
                <tr>
                  <td width="101"><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></div></td>
                  <td width="99"> <div align="left"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                      <input name="user" type="text" id="user" size="10">
                      </font></div></td>
                </tr>
                <tr>
                  <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Password:</font></div></td>
                  <td> <div align="left"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                      <input name="pass" type="text" id="pass" size="10">
                      </font></div></td>
                </tr>
                <tr>
                  <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Klasse</font></div></td>
                  <td> <div align="left"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                      <input name="authname" type="text" id="authname" size="10" value="f97x">
                      </font></div></td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td><input name="submit" type="submit" id="submit" onClick="instantprotectval('form1','user','#q','0','Please enter username','pass','#q','0','Please enter password','authname','#q','0','Please enter site name.');return document.MM_returnValue" value="Beskyt nu!"></td>
                </tr>
              </table>
            </form></td>
        </tr>
        <tr>
                </table></td>
  </tr>
</table>
<div align="center">
  <p>&nbsp;</p>

</div>
</body>
</html>
Avatar billede sqren Nybegynder
16. marts 2003 - 20:40 #2
Du skal lægge denne fil i www.clan.dk/admin/ så beskytter du du hele admin og alt under.
Du skal huse at først chmod'e /admin/ til 777. Derefter kører du filen og så skal du chmod'e /admin/ til 755
Avatar billede vizion Nybegynder
16. marts 2003 - 20:40 #3
Lidt ekstra: Det skal ikke være ved brug af mySQL(databaser osv.)

Og IKKE noget med chmod...
Avatar billede sqren Nybegynder
16. marts 2003 - 20:41 #4
Hvorfor ikke chmod ???
Avatar billede vizion Nybegynder
16. marts 2003 - 20:43 #5
fordi jeg har et skod FTP program.
Avatar billede sqren Nybegynder
16. marts 2003 - 20:44 #6
Nå, OK. Så bare prøv uden.
Avatar billede sqren Nybegynder
16. marts 2003 - 20:44 #7
Hey har du XP???
Avatar billede sqren Nybegynder
16. marts 2003 - 20:48 #8
Så kan du nemlig åbne explorer og skrive i adresse linien: ftp.clan.dk
Så skulle der gerne komme et login vindue frem. Så kan du bruge windows stifinder som dit ftp program. Det er faktisk pænt smart.
Avatar billede vizion Nybegynder
16. marts 2003 - 20:49 #9
Opretter nyt indlæg. Tror ikke folk svarer når der allerede er så mangge indlæg
Avatar billede sqren Nybegynder
16. marts 2003 - 20:50 #10
OK, men hr du prøvet mit forslag. Så vidt jeg ved er .htaccess det mest sikre der findes.
Avatar billede vizion Nybegynder
16. marts 2003 - 20:54 #11
Opretter ikke nyt alligevel. Men kan ikke bruge dit forslag pga. chmod. Det er også lidt for langt
Avatar billede sqren Nybegynder
16. marts 2003 - 20:56 #12
Hvis du har XP kan du bruge det til FTP program. Eller så prøv uden. Jeg har også n anden metode du kan bruge .htaccess

PS. Med .htaccess beskytter du HELE biblioteker og alle underfilerne
Avatar billede vizion Nybegynder
16. marts 2003 - 20:57 #13
sqren så giv mig et script der ikke er så langt, og IKKE skal bruges chmod og skal være sikkert.
Avatar billede sqren Nybegynder
16. marts 2003 - 21:00 #14
kald denne fil ".htaccess" :


AuthName "-- Clan.dk (eller noiget andet du selv kan bestemme--"
AuthType Basic
AuthUserFile /stien/til/dit/bibliotek/på/serveren/htpasswd
require valid-user


htpasswd

brugernavn:password(krypteret)



Krypter det her:http://www.webcafe.dk/artikler/apache/htaccesskrypterpassword/
Avatar billede sqren Nybegynder
16. marts 2003 - 21:03 #15
AuthTypeFile:
Sæt dette ind i et php dokument og upload det til mappen du lægger "htpasswd" i. Så kan du se hvad din AuthTypeFile sti er.
<?php
echo "<html>" . $_SERVER["DOCUMENT_ROOT"] . "</html>";
?>
Avatar billede fraggel- Nybegynder
31. oktober 2003 - 07:40 #16
vizion, tag dig sammen ^^
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