SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.07.2014, 12:11:06
wucke13 wucke13 ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
Beiträge: 2
PHP_Sicherheit vom Laien programmiert

Hallöchen, ich bin der Wucke und beschäftige mich seit nunmehr 3 Tagen mit PHP.
Ich hab dementsprechend wenig Ahnung. Ich bin ein Fan von Funktionen, kann mich aber mit objekorientierter Pogrammierung nicht so sehr anfreunden. Mir ist Prozedurale Programmierung wesentlich sympathischer.

So nun zur Frage:
Ich arbeite an einem Schulprojekt, in einem Team (welches das gute alte Motto 'Toll Ein Anderer Machts' bevolgt), als PHP-Zuständiger. Für bei dem Schulprojekt geht es um eine MySQL Datenbank, die unseren Vertretungsplan beherbergen soll. Natürlich gibt es einen öffentlichen Teil, aber ebene auch einen vertraulichen Teil um neue Stundenausfälle einzupflegen. Diesen Teil soll ich umsetzen.

Ich hab jetzt gut 20h damit verbracht ein Sicherheitsskript auszutüfteln, von dem ich meine das es Sicher ist, und wollte mir dazu mal ein wenig Kritik anhören. Besonders interessieren tuen mich natürlich Sicherheitslücken, aber wenn ihr da Code findet der eurer Meinung nach keinen Sinn ergibt, dann bitte auch rückmelden :)

Zum Einsatz des Skripts: Auf jeder der vertraulichen Seiten gibts am Anfang einen
<?php ?> Tag, der das Sicherheitsskript aufruft, also:
Code:
<?php
require_once 'auth.php';
auth_user();
Das eigentliche Skript sieht wie folgt aus:
Code:
<?php
################################
###Konstanten für MySQL#########
define("SQL_IP",   '127.0.0.1');
		
define("SQL_DB",   'test');
define("SQL_USR",  'root');
define("SQL_PWD", '');
################################


##################################
###Session erzeugen###############
ini_set('session.use_trans_id',1);
session_start();
if (!isset($_SESSION['ipadr']))
	{
	$_SESSION['ipadr'] = $_SERVER['REMOTE_ADDR'];
	}
	else if ($_SESSION['ipadr'] != $_SERVER['REMOTE_ADDR'])
	{
	kill_session();
	}
##################################


###############################
###Funktionen##################
function bind_user_to_session()
	{ 
	$_SESSION['username'] = $_POST["user"];
	$_SESSION['password'] = $_POST["pwd_md5"];
	}
	
function kill_session()
	{
	session_unset();
	if (isset($_COOKIE[session_name()]))
		{
		setcookie(session_name(), "", time()-86400);
		}
	session_destroy();
	}

function check_session()
	{
	if (isset($_SESSION['username']) AND isset($_SESSION['password']))
		{
		if ($_SESSION['username']!=null AND $_SESSION['password']!=null)
			{
			return true;
			}
		}
	else
		{
		return false;
		}
	}
	
function check_if_post()
	{
	if (isset($_POST["user"]) AND isset($_POST["pwd_md5"]))
		{
		if($_POST["user"]!=null AND $_POST["pwd_md5"]!=null)
			{
			return true;
			}
		}
	else
		{
		return false;
		}
	}
	
function check_auth($user,$pwd)
	{
	$db = @new mysqli( $SQL_IP, $SQL_USR, $SQL_PWD, $SQL_DB );
	$password_query="SELECT Password FROM User WHERE User=\"".$user."\";";
	if($user==null OR $pwd==null)
		{
		return false;
		}	
	else if ($user=="admin" AND $pwd=="c51ce410c124a10e0db5e4b97fc2af39")
		{
		return true;
		}
	else if(mysqli_connect_errno() == 0)
		{
		if($pwd==$db->query($password_query))
			{
			return true;
			}
		$db->close();
		}
	else
		{
		return false;
		}
	}
	
function kick_user_to_login()
	{
	kill_session();
	header('Location: login.php?retry');
	exit();
	}
	
function auth_user()
	{
	if(check_if_post())
		{
		bind_user_to_session();
		}
	if (!check_auth($_SESSION['username'],$_SESSION['password']))
		{
		kick_user_to_login();
		}
	}
###############################
?>
Gruß, Wucke

EDIT: Bei mir auf den heimischen PCs läuft des einwandfrei, bei meinem Freehoster 'kilu.de' krieg ich jedoch Fehler wegen der Header. Ich glaube, das könnte daran liegen, das der Freehoster Werbelayer über die eigentliche Seite legt, so dass der Header schon abgeschickt wird??? Die Fehler beim Header treten auf, wenn sich ausloggen will. Dafür muss man sich einloggen, ergo:
Username: admin
Passwort: 13
Link zum Hoster: http://www.kilu.de/
Link zu der Seite bei dem Hoster: http://glh.betrunken.org/login
EDIT 2: Das Problem Header sollte mit einer kleinen Funktion gefixt werden, bei Freehoster kommt es dennoch zu Fehlermeldungen (bezüglich der Session?)
Code:
function redirect_to($url)
	{
    if (!headers_sent())
		{    
        header('Location: '.$url);
        exit;
        }
    else
        {  
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo '</noscript>'; exit;
		}
	}

Geändert von wucke13 (14.07.2014 um 12:35:02 Uhr)
Mit Zitat antworten
  #2  
Alt 15.07.2014, 09:21:31
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: PHP_Sicherheit vom Laien programmiert

Zitat:
Zitat von wucke13 Beitrag anzeigen
... und beschäftige mich seit nunmehr 3 Tagen mit PHP.
Ich hab dementsprechend wenig Ahnung.
Das merkt man.

Zitat:
EDIT: Bei mir auf den heimischen PCs läuft des einwandfrei, bei meinem Freehoster 'kilu.de' krieg ich jedoch Fehler wegen der Header.
kilu.de ist kein Hoster sondern eine Krankheit.
Mit Zitat antworten
  #3  
Alt 17.07.2014, 22:51:05
wucke13 wucke13 ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
Beiträge: 2
AW: PHP_Sicherheit vom Laien programmiert

Danke Lieber Meikel für deine umfassende Hilfe, leider kann ich damit nicht wirklich etwas anfangen. Ich ging, da die Adresse diese Servers die Worte "Self" und "PHP" direkt hintereinander enthält, davon aus, dass das hier der richtige Ort ist für ambitionierte Anfänger, die schon etwas weitergehende Fragen haben.

Deine Reaktion lässt mich daran zweifeln.
Hast du einen schlechten Tag oder soll ich dieses Forum als "inaktiv" und "assozial" abstempeln und mir ein anderes Suchen?

Trotz meiner Ironie hoffe ich auf eine ernst gemeinte Antwort,
Gruß Wucke.

Zum Thema Hoster: Ich habe auch mit anderen Hostern, nicht Krankheiten, experimentiert. Einwandfrei laufen tut es inzwischen, also ist der Teil der Frage bereits Obsolet.

PS: Leute die miesepetern ohne auch nur mit kompetenz aufzuleuchten, sind ein ziemlicher Stimmungskiller.
Vielleicht sagst du mir, warum man sieht das ich ein ziemlicher Anfänger bin, das wäre ein Anfang zur Besserung...
Mit Zitat antworten
  #4  
Alt 18.07.2014, 14:52:07
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: PHP_Sicherheit vom Laien programmiert

Zitat:
Zitat von wucke13 Beitrag anzeigen
Ich ging, da die Adresse diese Servers die Worte "Self" und "PHP" direkt hintereinander enthält, davon aus, dass das hier der richtige Ort ist für ambitionierte Anfänger, die schon etwas weitergehende Fragen haben.
Da haste was falsch verstanden. Hier gibts Hilfe zur Selbsthilfe. Und wie sollte die Hilfe bei Dir aussehen, der seine "dreitägigen" Kenntnisse als laienhaft einschätzt:
1. benutz ne Suchmaschine, damit Du das PHP Handbuch findest
2. benutz ne Suchmaschine, damit Du eine FAQ findest.
3. guck Dir auch die Beispiele (linke Spalte): Kochbuch, Praxisbuch, Snippets an, die (zugegeben) tw. inhaltlich etwas alt sind und bei Gelegenheit mal an PHP 5.5.14 angepaßt werden sollten.

Dein Vorhaben, nach "dreitägigen PHP Schnupperkurs" ne Userverwaltung incl. Authentifizierung + Session zu schreiben, ist gelinde ausgedrückt eine "massive Selbstüberschätzung Deinerseits". Normalerweise traut man sich an solche Vorhaben erst dann dran, wenn man keine Fragen mehr stellen muß, weil man über genügend Erfahrung verfügt.
Mit Zitat antworten
Antwort

Stichworte
anfänger, fehlersuche, sicherheit


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php mail funktion für laien Mayina PHP Grundlagen 2 03.08.2011 15:39:33


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:56:10 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt