Hallo,
ich habe mal ein Problem
*Kurze Hintergrundinfo: Ich nutze bereits ein fertiges Forum welches ich nach und nach meinen Bedürfnissen anpasse*
Also.. das Forum ist so aufgebaut das jeder User das Forum betreten kann und die ganzen Unterforen sieht (wie in jedem forum )
Bestimmte Ränge sind so vergeben das mit dem Rang "versteckte" Foren angezeigt werden die normalen Usern verborgen bleiben.
In PHP Form sieht das ganze so aus:
if($user['id']>0)$queryparts = "
SELECT f_categories.*,f_forums.*,f_topics.topic_name,f_topics.last_poster,f_topics.last_post,f_markread.* FROM f_categories
JOIN f_forums ON f_categories.cat_id=f_forums.cat_id
LEFT JOIN f_topics ON f_forums.last_topic_id=f_topics.topic_id
LEFT JOIN f_markread ON (f_markread.marker_forum_id=f_forums.forum_id AND f_markread.marker_member_id=".$user['id'].")
";else$queryparts = "
SELECT f_categories.*,f_forums.*,f_topics.topic_name,f_topics.last_poster,f_topics.last_post FROM f_categories
JOIN f_forums ON f_categories.cat_id=f_forums.cat_id
LEFT JOIN f_topics ON f_forums.last_topic_id=f_topics.topic_id
";
if($user['g_forum_moderate']!=1)$queryparts .= "
WHERE hidden!=1
";
Alles anzeigen
Ab dem untersten IF sieht man das dort der Befehl kommt wenn die ID der Tabelle 1 beträgt das die versteckten Foren dann angezeigt werden.
Soweit klappt auch alles.
Das Problem ist aber wenn jemand die ID des Forums weiß kann er Problemlos das Unterforum aufrufen indem er die URL manuell eingibt obwohl er nicht den Status 1 hat - denn dieser verhindert ja lediglich das in der Forumübersicht diese Foren angezeigt werden.
Nun weiß ich nicht was ich machen kann damit User "gesperrt" werden wenn sie versuchen diese Forenkategory aufzurufen.
Ich hatte schon Ansätze probiert wie dies hier:
Aber komme damit nicht so wirklich weiter....
Kann mir hier wer Hilfestellung geben? Ein User der Seite (der übrigens diese Sicherheitslücke herausfand) teilte mir mit ich solle sowas mit Session Id's machen.. aber da versteh ich dann doch wieder nur Bahnhof wie man sowas in ein fertiges System implentieren kann