|
|
|
|
|
|
|
#1 (permalink) |
|
Neuer Benutzer
Registriert seit: 05.02.2008
Beiträge: 4
![]() |
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 |
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator
Registriert seit: 02.10.2006
Beiträge: 3.679
PHP-Kenntnisse: Fortgeschritten ![]() |
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. |
|
|
|
|
#3 (permalink) |
|
Neuer Benutzer
Registriert seit: 05.02.2008
Beiträge: 4
![]() |
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ß |
|
|
|
|
#4 (permalink) |
|
Moderator
Registriert seit: 02.10.2006
Beiträge: 3.679
PHP-Kenntnisse: Fortgeschritten ![]() |
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...'); }
?>
|
|
|
|
|
#5 (permalink) |
|
Neuer Benutzer
Registriert seit: 05.02.2008
Beiträge: 4
![]() |
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ß |
|
|
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2007
Beiträge: 5.044
![]() |
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.
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ä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 | |
| 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 | |
| mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:29 | |
| 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 | |