script nakijken.

Status
Niet open voor verdere reacties.

larszzie

Gebruiker
Lid geworden
4 aug 2008
Berichten
115
Hallo allemaal,
Net al een vraag geschreven of jullie naar een deel van mn script willen kijken (was een beetje domme vraag).
Nu is mijn script af en zou ik graag willen dat jullie even kijken. Er zijn al zoveel login scripts, maar ik heb het nu zelf gemaakt en wil weten of het ook nog een BEETJE veilig is.

Als iemand hier ff naar wil kijken graag

Alvast bednakt
 
waar kunnene we het bekijken ??
maar kijk eens naar het mijne http://code.google.com/p/autosite/ Natuurlijk Object maar iets uitgebreider ook hoop ik veilig te zijn er is een lek maar dat behoort de developer te weten en ook server moet dan als veilig beschoud worden
 
Ooow sorry, ik dacht dat ik hem al had bijgevoegd. (niet gedaan dus)
Ik heb hem nu wel bijgevoegd hoop ik.:p
 

Bijlagen

Ooow sorry, ik dacht dat ik hem al had bijgevoegd. (niet gedaan dus)
Ik heb hem nu wel bijgevoegd hoop ik.:p
Enkele probleempjes

admin.php
PHP:
$wie = $_SESSION[gebruikersnaam];
if ($wie == 'lars') {
}else{
	die ('Je bent geen beheerder <input type="button" value="Ga terug" onClick="javascript:history.go(-1)" />');
}

PHP:
$wie = $_SESSION['gebruikersnaam'];
if ($wie != 'lars') {
	die ('Je bent geen beheerder <input type="button" value="Ga terug" onClick="javascript:history.go(-1)" />');
}
 
Wat denk je van dit veel code onbreekt maar je ziet wel snel de bedoeling het gebruik van meertalig
login van mijn cms opensouce moet je eens uitchecken van mijn repos
PHP:
<?php
/**
 * @author Lieven Roegiers
 * @copyright 2006
 * @CMS autosite
 */
include("generalvars.php");
include('./generaldatavars.php');
$username =(isset($_POST['username']))? addslashes($_POST['username']) : null;
$pass=(isset($_POST['password']))? addslashes($_POST['password']) : null;
$kkey=(isset($_POST['key']))? addslashes($_POST['key']) : null;
$id=(isset($_GET['id']))?addslashes($_GET['id']):'home';
$id=(isset($_POST['id']))?addslashes($_POST['id']):$id;
$autosite['lang'] =(isset($_GET['lang']))? $_GET['lang'] : 'NL';
$load =(isset($_GET['upload']))? addslashes($_GET['upload']) : 0;
$handeling = (isset($_POST['handeling'])) ? addslashes($_POST['handeling']) : "Home";
include($autosite['functions']."interfaces/tosave.inc");
include($autosite['functions']."data/csv_plus.inc");
include($autosite['functions']."users/User_data.inc");
include($autosite['functions']."util/istime.inc");
include($autosite['functions']."util/hash.inc");
include($autosite['functions']."users/User.inc");
$csvfile = new csv_plus($autosite['users'],"KKey.dat",time()+60);//time() + (24 * 60 * 60);24 hours; 60 mins; 60secs
$user= new User($username,$autosite['users'],$kkey);
$user->setUser($username,$autosite['users'],$kkey);
$attributen="?";
$attributen.=(isset($id)) ? "id=".$id : "";
$attributen.=(isset($load)) ? "&upload=".$load : "&upload=0";
$attributen.=(isset($load)) ? "&lang=".$autosite['lang'] : "&upload=0";
$formsdata['login']['items']=array("username"=>"","password"=>"","login!2"=>"");
$formsdata['login']['tovalid']=array("name");
$formsdata['login']['loginniveau']=0;
if(isset($kkey)&& $kkey!=""){
	include($autosite['functions']."util/redirector.inc");
	//||islogin()
	$resline = $csvfile->find_line($kkey);
	$istime = new istime();
	if($kkey==$resline[2]&&$istime->is_notpasse($resline[0])){
		if($user->login($pass,$resline[2],$resline[3])){//login ok
		     $csvingelogd = new csv_plus($autosite['users'],"ILOG.dat");
		     $data = array($kkey,$user,"L0G1N",$_SERVER['REMOTE_ADDR']);
			 $csvingelogd->save_line($data);
			 $attributen.=(isset($kkey)) ? "&key=".$kkey : "";//<<<<<<<<<<<<<<<<<<
			 /*for object saving in a session*/
			 $_SESSION['user']=serialize($user);
			 redirect($autosite['installoc'].$option_location[$handeling][0]."".$attributen);
			 die("ingeloged");	 
		}
	}//not login or pasword
	redirect($autosite['installoc'].$option2location['Login'][0]."".$attributen);
	die("not login"); //security
	//$data = array("p",time()+(1 * 1 * 60 * 60),$kkey,$user,$pass,$ecript,"test");
	//$csvfile->save_line($data);//TODO generalvars
}else {
	$cripty = funrandencript();
	$kkey =$user->getkkey();
	$user = null;
 	$data = array("pre",$kkey,$cripty,"ERROR",$_SERVER['REMOTE_ADDR']);
 	$csvfile->save_line($data);
	include_once($autosite['layout']."head.inc");
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<MENU>>>>>>>>>>>>>>>>
	include_once("./preparts/Amenu.inc");
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<TOOLBAR sidebar>>>>>>>>>>>>>>>>
	//include_once ($autosite['layout']."toolbar.inc");
	include_once ($autosite['layout']."aditudes.inc");
	$formname=$id;
	print "<script type='text/javascript' src='".$autosite['javascript']."webtoolkit.".$cripty.".js'></script>";
			print'<div id="container">';
			include_once($autosite['functions']."Qhtml/Qvieuw.inc");
			include_once($autosite['functions']."data/properties.inc");
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<take the template >>>>>>>>>>>>>>>>
			$string = (string)file_get_contents($autosite['-forms']."login.Qform");
			$template = new Qtemplate($string);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<take the properties >>>>>>>>>>>>>>>>
			if(isexist_propertiefile($autosite['translations'],$autosite['lang'],"forms")){
				print"<!-- @LANGlocale:".$autosite['lang']." IS used -->";
				$properties = new properties($autosite['translations'],"_".$autosite['lang'],"forms");
			}else{
				print"<!-- @LANGlocale:".$autosite['lang']." IS NOT EXIST -->";
				$properties = new properties($autosite['translations'],"","forms");
			}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<take the properties >>>>>>>>>>>>>>>>			
			$formfields = $formsdata['login']['items'];
			$template->translate($properties->getproperties($formsdata['login']['items']));
			$formtemplate = $template->gethtml();
			$formtemplate .= "<input type='hidden' name='handeling' value='$handeling' />";
			$formtemplate .= "<input type='hidden' name='upload' value='$load' />";
			$formtemplate .= "<input type='hidden' name='key' id='Key' value='$kkey' />";
			include($autosite['layout']."form.inc");
			print'</div>';
		 ?>

    <script type="text/javascript">
		var returntext;   
		function login(parpwx){<?php //TODO replace  ?>
	  		var User = document.getElementById("User");
	  		var Key = document.getElementById("Key");
	  		var Password = document.getElementById("Password");
	  		Password.value =<?php print"$cripty"; ?>(Key.value+Password.value);
	  		if( User != "" && Password != "" ){
	  			document.forms[0].submit();
	  		} else { 
		  		alert( "Er is geen gebruikersnaam en/of wachtwoord ingevoerd!" );
			}
			return Password.value;
		}
	</script> 
<?php } ?>
<!-- @OVERRIDE STYLE -->
<link rel='stylesheet' href='<?php print$autosite['layout']?>css/style.css' type='text/css'/>
<!-- @AUTHOR Lieven Roegiers @CMS autosite V2.5 automaticsite -->


Hieronder het userobject Merk op dat je hierdoor snel je loginvoorwaarden kan veranderen zonder dat iemand het merkt Let ook op wat de session bevat dus ook veel kennis over de user zelf dus weinig mysql trafic wat je voor login moet vermijden

PHP:
<?php
/**
 * @author Lieven Roegiers
 * @copyright 2009
 * @CMS autosite
 */
//function killsessionuser(){
	
//}
function setsessionuser($user){
	$_SESSION['user']=serialize($user);
}
function getsessionuser(){
	return(isset($_SESSION['user']))?unserialize($_SESSION['user']):null;
}
class User extends User_data{
	private $userpath;
	private $name;
	private $pasword;
	private $level;
	private $isuser;//
	private $kkey;
	private $remoteip;
	private $enabled;
	private $hashList =array();
	private $releasetime = 0 ;
	function User(){
		session_start();
	}
	//<<<<<<<<<<<<<<<<<<<<<<<FUNCTIONS>>>>>>>>>>>>>>>>>>>>>>>>>
	function setUser($username,$path,$kkey){
		//$username=(isset($username)&& $username!="")?$username:$_SESSION['login'];
		//parent:: wil go to extends
 		parent::__construct($username,$kkey);
		$this->name =$username;
		$this->userpath =$path.substr($username, 0, 1)."/".$username."/";
		$this->isuser=(is_dir($this->userpath)&& $username!="")? true:false;
	}
	function login($pasword,$kkey,$c){
		if ($this->isuser)include $this->userpath."data.php";
	    if(isset($this->name)&&isset($incpass)&& $incpass != "" && ishash("md5",$kkey.$incpass,$pasword)){
			$this->setReleasetime();
			$this->setRemoteip();
			$this->level = $loginniveau;
			$this->enabled = $hasaccess;//login enabled or disabled
			return true;
			//$_SERVER["HTTP_ACCEPT"
		} else { 
			return false;
		}
  	}
  	//<<<<<<<<<<<<<<<<<<<<<<<Getters>>>>>>>>>>>>>>>>>>>>>>>>>
	function islogin(){
		return (isset($this->name)&& isset($this->releasetime) && $this->releasetime > time()&&$this->isenabled());//$this->isRemoteip());
	}
	function is_User($username){
		return $this->isuser;
	}
	function getlevel(){
		return ($this->islogin())?$this->level:112;// !login = lowerst level 
	}
	public function getpath(){
		return ($this->islogin())?$this->userpath:"ERROR not login";
	}
  	private function isenabled(){
  		return true;
  	}
  	//set not public security
	private function isReleasetime(){
		return ($this->releasetime > time());	
	}
	private function isRemoteip(){
		if($this->remoteip === $_SERVER['REMOTE_ADDR']){
			return true;
		}else{
			@session_unset();
			return false;
		}
	}
	//<<<<<<<<<<<<<<<<<<<<<<<Setters>>>>>>>>>>>>>>>>>>>>>>>>>

	private function setReleasetime(){
		$this->releasetime = time() + (1 * 1 * 60 * 60);	
	}
	private function setRemoteip(){
		$this->remoteip = $_SERVER['REMOTE_ADDR'];
	}
	public function setpassword($oldpwx){
		
	}
	public function __tostring(){
		return "Welkom ".$this->name."releasetime".(($this->releasetime -time() )/60)."min";
	}
	private function __toprintsession(){
		print_r($_SESSION);
	}
}
?>

Wat je nog mist in je resultaat is de log die een paar kritiek punten logt om nadien fouten te kunnen reparreren en alle includes zie bovenstaand path
 
Hee,
Bedankt voor de reactie, maar ik ben nog maar een beginner en ik snap er echt helemaal niets van.
Zou je iets meer uitleg kunnen geven?
Alvast bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan