Eigentlich ist diese sowohl in Joomla! 2.5.x als auch in Joomla! 3.0.x einstellbare Funktion „nicht zugängliche Links“ für so manchen Webmaster eine coole Sache: man macht den Leser neugierig, doch wenn er den Artikel lesen will, muss er sich anmelden.
Wird diese Funktion jedoch verkehrt gesetzt, kann dies zu einem eklatanten Sicherheitsrisiko werden. Zugegeben ist dies etwas drastisch ausgedrückt, denn Angriffsflächen für Hacker entstehen dadurch natürlich nicht. Jedoch werden Artikel, die nur bestimmten Benutzergruppen zugänglich sein sollten, von Google indexiert, direkt verlinkt und sind öffentlich einsehbar. Enthalten diese Beiträge sensible Informationen, wie zum Beispiel Bank- oder Kundendaten, kann dies schnell zu einem echten Problem werden.
Bei richtiger Anwendung funktioniert die Geschichte aber auch nicht ganz reibungslos. Zeit also für verantwortungsbewusste Webmaster, sich diese Funktion und deren Risiken genau anzusehen.
Schauen wir uns zuerst an, wo wir die Funktion überhaupt finden können. Die Einstellungsmöglichkeiten sind an allen Orten dieselben, man hat lediglich die Auswahl zwischen JA (=aktivieren) und NEIN (=nicht aktivieren) und zusätzlich in dem Menüeintrag Einzelner Beitrag noch die Option, es bei Globale Einstellung zu belassen und in den Menüeinträgen, mit denen mehrere Artikel aufgelistet werden, kommt noch die Option Beitragseinstellungen verwenden hinzu.
Standardmäßig ist in den Globalen Beitragsoptionen NEIN und bei den Menüeinträgen Globale Einstellung (somit =Nein) gesetzt. Wählt man in den Menüeinträgen, die mehrere Artikel listen, die Option Beitragseinstellungen verwenden aus, werden alle nicht zugänglichen Artikel der im Menüeintrag getroffenen Auswahl angezeigt (auch wenn in den Globalen Beitragseinstellungen die Funktion deaktiviert wurde. Ich habe keine Ahnung, wo diese Beitragseinstellungen sitzen sollen.
Die getroffene Auswahl in den Globalen Beitragsoptionen gilt für alle Vorkommnisse. In Menüeinträgen kann dies jedoch mit einer eigenen Auswahl (ja oder nein) geändert werden. Nachfolgend die Klickwege, die zu den Parametern nicht zugängliche Links führen.
Funktion „nicht zugängliche Links“ globale Einstellungen
Globale Beitragsoptionen:
Globale Beitragsoptionen – Joomla! 2.5
Joomla! Backend –> Inhalt –> Beiträge –> Optionen (icon) –> Tab Beiträge
Globale Beitragsoptionen – Joomla! 3.0
Joomla! Backend –> Inhalt –> Beiträge –> Optionen (Button) –> Tab Beiträge
Funktion „nicht zugängliche Links“ in Menüeinträgen
Einstellung in Menüeinträgen:
Auswahl eines der folgenden Menütypen – Joomla! 2.5
Joomla! Backend –> Menü –> Menü wählen (z.B. Mainmenü). Neu –> Menütyp (Einzelner Beitrag, Alle Kategorien auflisten, Kategorieblog, Kategorieliste, Hauptbeiträge) –> Beitragsoptionen
Auswahl eines der folgenden Menüeintragstypen – Joomla! 3.0
Joomla! Backend –> Menü –> Menü wählen (z.B. Mainmenü). Neu –> Menüeintragstyp (Einzelner Beitrag, Alle Kategorien auflisten, Kategorieblog, Kategorieliste, Hauptbeiträge) –> Tab Erweiterte Optionen –> Beitragsoptionen
Die Beschreibung der Funktion „nicht zugängliche Links“
Lässt man den Mauszeiger über dem Label nicht zugängliche Links verweilen, erscheint ein Tooltip, der eine Beschreibung der Funktion enthält. Nachfolgend der Wortlaut (Stand Joomla! 2.5.9 und Joomla! 3.0.3) auf Englisch und Deutsch.
Englisch
If set to Yes, links to registered content will be shown even if you are not logged-in. You will need to log in to access the full item.
Deutsch
Falls „Ja“ ausgewählt wurde, werden die Links zu registrierten Inhalten auch ohne Anmeldung angezeigt. Den vollen Zugriff darauf erhält man aber erst nach einer Anmeldung.
Was genau macht die aktivierte Funktion „nicht zugängliche Links“
Setzt der Admin diese Funktion in den globalen Beitragseinstellungen auf Ja, werden auch nicht öffentlich zugängliche Artikel sichtbar. Nicht öffentlich bedeutet: Artikel mit anderen Zugriffsebenen als public (Public wird ja sowieso der Öffentlichkeit gezeigt). Also quasi: ALLE Artikel werden öffentlich zugänglich. Huch? Richtig! Function kills Access Levels! Es gibt eine Einschränkung, dass nur der jeweilige Introtext wiedergegeben wird, die allerdings nur greifen kann, wenn man sie kennt und einsetzt.
Gedacht ist diese Funktion so: Der Introtext wird wiedergegeben und darunter ein Button: Anmelden, um den Artikel zu lesen.
Reguläre Funktion:
Steht aber nicht so in der Beschreibung? Richtig, dort ist nur von „Links zu registrierten Inhalten, die auch ohne Anmeldung gezeigt werden“, die Rede. Stattdessen müsste es zumindest lauten: Links and Teasertext, bzw. Links und Introtext.
Falsche Anwendung der aktivierten Funktion „nicht zugängliche Links“
Wird innerhalb eines nicht öffentlich zugänglichen Artikels kein readmore/Weiterlesen Link (Klick auf Weiterlesen-Button im Editor) gesetzt, ist der komplette Artikel zugänglich. Wird ein readmore/Weiterlesen-Link jedoch gesetzt, wird nur der Teasertext öffentlich zugänglich. Aber sobald die Funktion nicht zugängliche Links aktiviert wurde, können ALLE Beiträge komplett oder nur der Introtext gelesen werden.
- Das ist unabhängig davon, ob der Artikel öffentlich verlinkt, nicht öffentlich verlinkt oder gar nicht verlinkt wird.
- Ebenso interessiert es dabei nicht, dass nicht nur der Artikel die Zugriffsebene (z. B.) Registered hat, sondern auch die Kategorie des Artikels nicht öffentlich zugänglich gesetzt wurde.
- Es ist ebenso unabhängig davon, ob Suchmaschinenfreundliche URL, URL-Rewrite nutzen oder/und Dateiendung an URL anfügen auf JA oder NEIN gesetzt und auch wie sie kombiniert sind.
Man benötigt lediglich die Artikel-ID, zu finden unter Inhalt –> Beiträge –> Spalte ID. Angenommen, die ID des nicht öffentlich zugänglichen Artikels lautet 4. Mit folgenden Link-Konstrukten ist es möglich, sich diese Artikel anzeigen zu lassen (wodurch auch Besucher über Google diesen Zugriff erhalten):
- index.php?option=com_content&view=article&id=4
- 4?task=view
bzw. - 4.html?task=view
Was jeweils an die Domain samt Slash (also z.B. http://software-lupe.de/), bzw. an den Root-Link, wenn Joomla! bspw. in das Verzeichnis cms installiert wurde und auch so aufgerufen wird (http://software-lupe.de/cms/) anzuhängen ist.
Enthält der als nicht zugänglich eingestufte Artikel keinen Weiterlesen-Link, wird darüber der komplette Inhalt aufgerufen – denn dann wertet Joomla! den gesamten Beitrag als Introtext – und wird öffentlich zugänglich. Obwohl u. U. nirgends auf der ganzen Website ein öffentlich zugänglicher Link zu diesem Artikel auftaucht.
Sichere Anwendung der aktivierten Funktion „nicht zugängliche Links“
Setzt man die Funktion in den globalen Beitragseinstellungen auf JA, dann sollte man in ALLE Artikel einen „Weiterlesen“-Link (Klick auf Button Weiterlesen im Editor) setzen. Und nur in den Introtext schreiben, was auch die Öffentlichtkeit lesen darf.
Weiterlesen-Link einfügen:
Warum in „alle“ Artikel? mag sich nun so mancher fragen. Wie Sie ja gerade im vorigen Abschnitt lesen konnten, reicht die ID, um einen Artikel ganz (ohne Weiterlesen-Link), bzw. „nur“ mit Introtext (mit Weiterlesen-Link) unabhängig davon ob und wie er verlinkt wurde, anzeigen zu können, bzw. so über Google gefunden zu werden. Und sobald die Funktion in den globalen Beitragseinstellungen aktiviert wurde, können ALLE Artikel von Außenstehenden gelesen werden.
Wer die Funktion „nicht zugängliche Links“ unbedingt einsetzen will, sollte daher die Funktion in den globalen Beitragseinstellungen deaktivieren (auf NEIN setzen). Und sie nur in den Bereichen aktivieren, wo eine Wiedergabe des Introtextes von nicht zugänglichen Artikeln auch für nicht angemeldete Benutzer gewünscht ist. Außerdem innerhalb dieser Artikel den Weiterlesen-Link setzen, bzw. diesen nicht vergessen.
So können über das gezielte Aktivieren der Funktion innerhalb der Menüeinträge entweder
- der Teaser nur eines einzelnen Artikels
- die Teaser der Artikel aus einer oder mehreren Kategorien
- oder der Artikel, die als Hauptbeiträge gekennzeichnet wurden
ausgegeben werden. Alle anderen nicht zugänglichen Artikel bleiben nicht autorisierten Benutzern (per Zugriffsebene und Gruppenzugehörigkeit definiert) bei Aufruf mit direkter URL (Artikel-ID) verborgen.
Richtige Anwendung der aktivierten Funktion „nicht zugängliche Links“
Damit diese Funktion überhaupt Sinn macht, sollen die Introtexte direkt auf der Website aufrufbar sein und nicht über irgendwelche „seltsamen“ Links. Neben dem vorherigen wichtigen Abschnitt „Sichere Anwendung“ gibt es einige zusätzliche Einstellungen, bzw. Einschränkungen zu berücksichtigen.
Einzelnen Artikel verlinken
Der Menülink zu einem nicht zugänglichen Artikel (Menütyp Einzelner Beitrag) wird der Öffentlichkeit nur angezeigt, wenn die Zugriffsebene des Menülinks auf public gesetzt wurde.
Blog/Listview
Auflistungen von Katgeorien oder Hauptbeiträgen zeigen der Öffentlichtkeit nicht zugängliche Artikel nur dann an, wenn nicht nur der Menülink selbst, sondern auch die zu dem Artikel gehörige Kategorie auf (Zugriffsebene) public gesetzt ist.
Module
Module, wie zum Beispiel das Modul „Latest News / Neueste Beiträge“, listen die Überschriften von nicht zugänglichen Artikeln auf (bei aktivierter Funktion). Ein Klick auf eine dieser Überschriften führt immer zu einem Anmeldeformular.
Fazit:
Sobald die Funktion in den globalen Beitragsberechtigungen auf Ja gesetzt und somit aktiviert wurde, kann JEDER Artikel über seine ID aufgerufen und gelesen werden, egal welche Zugriffsebene gesetzt und egal ob der Artikel verlinkt wurde. Artikel mit einem Weiterlesen-Link zeigen dabei „nur den Introtext“, was aber unter Umständen auch schon unerwünscht sein kann. Beiträge ohne Weiterlesen-Link werden komplett dargestellt (Stand: Joomla! 2.5.9 und Joomla! 3.0.3).
Deswegen sollte die Funktion, falls sie unbedingt benötigt wird, in den globalen Beitragsberechtigunen auf Nein gesetzt und stattdessen innerhalb ausgewählter Menüeinträge aktiviert werden.