php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.02.2008, 12:47  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 4
heyho befindet sich auf einem aufstrebenden Ast
Standard Direkten Zugriff auf Datenbank verhindern

Hallo,

ich habe hier das Forum durchsucht, nur leider nicht die passende Lösung gefunden, so dass ich doch die Frage stellen möchte:
Ist es möglich, dass der Zugriff auf eine Datenbank ID verhindert wird? Ich habe eine Homepage, in der Daten aus der Datenbank ausgelesen werden. Wenn eine "öffentliche Person" hinkommt, wird nur ein Teil als Liste ausgegeben, im gegensatz zu denen die sich einloggen können. Wenn der Benutzer über die normale Seitenstrucktur auf die Seite zugreift kommt er von:
http://www.testmich.de/arbeiten/infos/index.php wo dann eine Liste mit einträgen aus der Datenbank erscheint. Klickt er einen Eintrag an, kommt er auf http://www.testmich.de/arbeiten/infos/liste.php?id=1 . Nun kann er hinter der id= die Nummer nach belieben verändern und dadruch auch auf Einträge aus der Datenbank zugreifen, die er nicht sehen sollte. Wie kann ich am einfachsten dies unterbinden? Ich dachte dass dann eine leere Seite erscheint mit "Zugriff verweigert. Um auf die Liste zurückzukehren klicken sie bitte hier." Und bei "hier" wird dann auf meine vorherige Seite verwiesen.
Könnte mir da jemand helfen?
Danke im Voraus.
heyho
heyho ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.02.2008, 12:53  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Du musst eben einfach überprüfen ob der Benutzer das Recht hat diese Seite aufzurufen.... dafür gibt es 100erte Möglichkeiten.

Eine andere Möglichkeit wäre es statt der ID die einfach hochgezählt wird (ich nehme an es ist eine auto_increment-Spalte) einen zufälligen String als Schlüssel zu nehmen.... Dann sehen Links auf die Liste so aus: links.php?id=c4ca4238a0b923820dcc509a6f75849b (in dem fal ist das ein md5-hash...). So kann der Nutzer nicht einfach die nächste ID "erraten".


Aber es kommt ganz darauf an was du wirklich machen willst ... das konnte ich aus deinem Posting noch nicht so ganz rauslesen.
agrajag ist offline  
Alt 05.02.2008, 13:02  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 4
heyho befindet sich auf einem aufstrebenden Ast
Standard

Hallo agrajag
Du hast es richtig erraten, es ist die auto_increment Spalte, deren ID ausgegeben wird. Der Wunsch ist, dass diese sichtbar bleibt.
Könntest du mir zu deinem ersten Vorschlag mit der Benutzerüberprüfung ein Beispiel geben wie das aussehen könnte? Ich verwende wohl den falschen Suchbegriff, weil ich hier nichts dazu finden kann

Gruß
heyho ist offline  
Alt 05.02.2008, 13:17  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Formulier doch erstmal in Worten was genau du machen möchtest. Danach ist es oft ganz einfach das in Code zu gießen

Du hast also schone in Login-System? Sessionbasiert oder wie fragst du ab ob jemand eingeloggt ist? Nach welcher Logik wird denn die Liste von der du redest ausgegeben?

Im Prinzip musst du eben einfach nur irgendwie überprüfen ob der entsprechende datenbankeintrag von allen oder nur von eingeloggten Usern gesehen werden darf...

Das könnte beispielsweise irgendwie so aussehen:
Code:
<?php 
// requrie_login kommt aus der DB 
if($row['require_login'] =="yes" AND !isset($_SESSION['logged_in']) {
die('Du musst dich erst einloggen...'); }
?>
agrajag ist offline  
Alt 07.02.2008, 10:35  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 4
heyho befindet sich auf einem aufstrebenden Ast
Standard

Hallo agrajag,

mein Wunsch in Worten ausgedrückt:
Ein Besucher der Homepage, der keinen Login hat, soll nicht die Möglichkeit haben direkten zugriff auf die Einträge der Datenbank zu bekommen, wenn er eine ID kennt. Ich möchte, dass ihm dann eine Fehlermeldung kommt, oder er direkt auf eine bestimmte Seite weitergeleitet wird.

Das Login ist nicht session basiert. Beim Login wird geprüft, ob der Benutzername in der Datenbanktabelle "login" vorhanden ist und welche Zugriffsrechte er hat. Dementsprechend bekommt er Zugriff auf Teilbereiche der Homepage.

Die Liste wird aus den Einträgen aus der Datenbanktabelle "arbeiten" ausgelesen und dann noch geprüft, ob z.b. das Datum älter ist als ein Jahr oder nicht, und wenn ja, dann wird dieser Datensatz nicht mehr angezeigt.

Hoffe, so ist es etwas verständlicher.
Danke schon im Voraus für deine Hilfe.

Gruß
heyho ist offline  
Alt 07.02.2008, 10:53  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von heyho Beitrag anzeigen
Dementsprechend bekommt er Zugriff auf Teilbereiche der Homepage.
Wie und wo wird dieser Zugriff (diese Zuriffsrechte) gespeichert, wenn das login nicht session basiert ist. Woher "weiß" das nächste Skript beim nächsten Aufruf von diesen Rechten? Wenn es nicht von den Rechten weiß, kannst Du unregistrierte Benutzer nicht von registrierten unterscheiden. Vielleicht solltest Du doch ein session basiertes login verwenden.
David ist offline  
Alt 07.02.2008, 11:07  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 4
heyho befindet sich auf einem aufstrebenden Ast
Standard

Ich muss mich korrigieren. Der Login läuft bereits über eine Session.
heyho ist offline  
Alt 07.02.2008, 11:41  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann hat Dir ja agrajag schon eine mögliche Vorgehensweise erklärt.
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Direkten Seitenaufruf verhindern TAD HTML, Usability und Barrierefreiheit 5 26.07.2006 12:14
Zugriff auf MySQL Datenbank oxygenus Datenbanken 12 15.02.2006 14:41
[Erledigt] PHP5 OOP Zugriff aus einem Objekt auf ein externes Objekt PHP Tipps 2006 5 28.01.2006 16:05
[Erledigt] Zugriff auf die Datenbank vom internet aus Datenbanken 1 18.01.2006 22:23
Kein Zugriff auf die Datenbank horstenpeter Datenbanken 5 09.01.2006 10:42
Zugriff auf letzte id in der Datenbank PHP Tipps 2005-2 2 25.10.2005 11:30
[Erledigt] zugriff von unbefugten auf mysql datenbank? Datenbanken 5 18.08.2005 15:20
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
wie Doppeleintrag in Datenbank verhindern? PHP Tipps 2005-2 9 09.08.2005 13:03
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Code auf Direkten DB Zugriff abändern PHP Tipps 2005-2 2 20.06.2005 12:44
Zugriff auf Sybase 8 Datenbank über ADOdb PHP-Fortgeschrittene 15 06.04.2005 15:55
wie mache ich was Schreibrechte ändern Datenbank Eingaben .. PHP Tipps 2005 7 10.02.2005 19:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zugriff auf datenbank verhindern, root zugriff auf datenbank verhindern, direkter zugriff auf internet-datenbanken, datenbank hinter login system?, datenbank auslesen verhindern, datenbank zugriffe vermeiden, php kein direkten db zugriff, direkter zugriff datenbank, access2010 zugriff auf tabelle verhindern, auslesen datenbank verhindern, direkten zugriff auf tabellen verhindern, fremden zugriff auf datenbank verhindern, textbox zugriff auf datenbank nicht erlauben, modul zugriff auf oracle verhindern, datenbankzugriff odbc verhindern, mssql administrator zugriff auf daten verhindern, datenbank direkt zugriff, datenbank zugriff von außen verbieten, sql datenbank zugriffe verhindern, direkter zugriff verhindern php

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum