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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden |
03.11.2010, 09:32:39
|
Anfänger
|
|
Registriert seit: May 2008
Beiträge: 4
|
|
Sessions und HTTP Auth
Guten Morgen ,
ich habe eine Homepage auf der sich Benutzer einloggen können um in einen internen Bereich zu gelangen.
Das funktioniert mit Sessions ganz gut.
Das Problem ist nun, dass ich Dateien habe, die nur von bestimmten internen Bneutzern geladen werden dürfen, bzw Ordner in die auf keinen Fall nicht-eingeloggte Leute hineindürfen.
Damit auch Google nicht durch die Ordner läuft habe ich eine .htaccess angelegt, welche die Nutzerdaten aus einer SQL-DB ausliest und denn Nutzer dann zulässt oder nicht.
Mein Problem ist nun, dass die User genervt sind, dass sie sich beim HTAccess noch einmal anmelden müssen.
Nun möchte ich aber auch nicht das gesamte Konzept über den Haufen werfen sondern die Sessions behalten.
Eine Zuweisung der SERVER-Variablen geht ja leider auch nicht und wie ich finde ist nur das htaccess unschön zum einloggen.
Hat jemand von euch da eine Idee?
Lg
|
03.11.2010, 10:00:56
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Sessions und HTTP Auth
Zitat:
Zitat von Serathil
Hat jemand von euch da eine Idee?
|
nutze php zur authentifizierung; http-auth ist für komplexere umgebungen - wie du selbst bemerkst - gänzlich ungeeignet. nutze dazu entsprechende module eines php-frameworks, suche nach skripten / tutorials im netz und / oder schreib das ganze selbst zusammen.
cx
|
03.11.2010, 11:12:19
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
AW: Sessions und HTTP Auth
Eine empfehlung hätte ich für dich.
-> Das script is frei verfügbar und von einem kollegen von mir geschrieben mit dem ich zusammen bei dem projet arbeite.
http://webdesign.sarkkan.de/moonweb/...nigAufwand.htm
Ziemlich sicher auserdem leicht zu integrieren finde ich.
LG
R4Zz0R
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
03.11.2010, 12:19:40
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Sessions und HTTP Auth
Zitat:
Zitat von R4Zz0R
Ziemlich sicher [...] finde ich.
|
wie kommst du zu dieser einschätzung? ist dein kollege der meinung? hast du selbst ausreichend erfahrung, das zu beurteilen?
anmerkungen zum skript:
Zitat:
Zusätzlich wenden wir noch htmlentities() und trim() [auf] Benutzernamen sowie Passwort an, um gefährliche Zeichen zu maskieren und unnötige Leerzeichen zu entfernen:
|
das ist unsinn.
1. htmlentities( ) dient zur maskierung besonderer zeichen bei der ausgabe von daten in html. darüber hinaus würde man nicht die originären daten in der db speichern, sondern eine (willkürliche / spezifische) maskierung.
2. um eingabedaten in richtung db zu maskieren, wird mysql_real_escape_string benutzt.
ich kann R4Zz0R's empfehlung leider nicht teilen; das ganze ist nicht ausgereift.
cx
|
03.11.2010, 14:40:54
|
Anfänger
|
|
Registriert seit: May 2008
Beiträge: 51
|
|
AW: Sessions und HTTP Auth
Ich kann der Empfehlung ebenfalls keine Zustimmung erteilen.
Schon alleine der Loginvorgang wird durchgeführt ohne die übergebenen POST-Parameter zu maskieren und direkt in das SQL-Query einzubinden:
Zitat:
$user = $_POST['loginName'];
$pass = $_POST['loginPass'];
$sql = "SELECT id FROM accounts WHERE
username = '". $user ."' AND
password = '". $pass ."' LIMIT 1;";
|
Stichwort: SQL-Injection
|
03.11.2010, 15:22:37
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Sessions und HTTP Auth
Zitat:
Zitat von CPCoder
Schon alleine der Loginvorgang wird durchgeführt ohne die übergebenen POST-Parameter zu maskieren [...]
|
naja... dazu haben die autoren auch angemerkt:
Zitat:
Dieser Login kann ausgetrickst werden
|
cx
|
03.11.2010, 23:39:51
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Sessions und HTTP Auth
Hi
Zitat:
Zitat von cortex
2. um eingabedaten in richtung db zu maskieren, wird mysql_real_escape_string benutzt.
ich kann R4Zz0R's empfehlung leider nicht teilen; das ganze ist nicht ausgereift.
cx
|
Sehe ich genauso.
Und bitte nicht mehr auf magic_quotes_gpc setzen das is ab 5.3 DEPRECATED.
Daten die nicht in Richtung DB gehen kann man sich easy ne
Funktion schreiben die alle POST, GET usw Daten von nicht
gewünschten befreit und gefährliches maskiert.
Ich persönlich maskiere durch eine solche funktion alles bevor
es meine scripte betritt egal welche ziele sie haben!
mfg
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
04.11.2010, 00:18:03
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
AW: Sessions und HTTP Auth
Zu dem script muss ich anmerken das da vor einiger zeit noch mehr zu dem beitrag stand..
Wurde wohl überarbeitet sorry für den ausrutscher ...
O.T
@ Ckaos:
meinst du etwa sowas wie (pseudocode *sollte aber gehen ;) )
PHP-Code:
<?php
$geta = array_merge($_GET);
foreach ( $geta as $varx => $val ) {
$geta[$varx] = preg_replace('/[^a-z0-9 \\/?=&]/Usi','',$val);
}
?>
Was natürlich jetzt meine variante wäre sowas zu lösen. (und was auch auf post anwendbar wäre)
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
04.11.2010, 02:59:33
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Sessions und HTTP Auth
Hi
so oder ähnlich ;)
PHP-Code:
$outlow=array(";",":","<",">","%","$");
foreach($_GET as $key=>$val){
$_GET[$key] = str_replace($outlow,"",$val);
}
foreach($_POST as $key=>$val){
$_POST[$key] = str_replace($outlow,"",$val);
}
Jedenfalls fing ich so mal an....dann paranoider später / heute
habe ich ne Klasse die je Seite nur vorher per Formularklasse
oder Tempklasse zugelassene/registrierte/Typ bestimmte Daten
prüft und durchlässt andere ignoriert und mir nur zur
Prüfung ablegt. So lassen sich "versuche" relativ schnell
entdecken und im Keim ersticken.
mfg
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
04.11.2010, 14:54:57
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
AW: Sessions und HTTP Auth
Ähhm ... du entfernst die zeichen einfach ... dh. du machst das selbe wie ich mir str_replace
wobei eine regex warscheinlich performanter ist ...
bei post ist es auserdem weniger sinnvoll wenn du alles filterst und gegen nichts ersetzt also in dem fall es aus dem string löschst da der benutzer ja sicher auch gerne zeichen eingeben würde um seinen text zu formatieren oder code auf der seite zu präsentieren ...
da würde ich es dan eher mit mysql_real_escape_string maskieren ( dafür hab ich mir mal ne gute funktion gebastelt :D )
PHP-Code:
<?php function cleanQuery($array) { foreach( $array as $varx => $val ) { $array[$varx] = mysql_real_escape_string($val); } return $array; } ?>
so habe ich immer ein eigenstädiges array was nur für sql querys bereitsteht, und das laut meiner ausgabe ( & sql inject me :) ) auch recht sicher ist.
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:59:54 Uhr.
|