HM-Feedleser (Allgemeines und Beschreibung der Release-Versionen 1.04 bis 1.06)
Es ist beinahe eine Selbstverständlichkeit, dass zum Funktionsumfang
neuzeitlicher Content Management Systeme (CMS) eine Möglichkeit zur Bereitstellung von RSS- oder
Atom-Feeds gehört und sei es nur, dass diese Möglichkeit durch ein zusätzliches Plug-In realisiert wird.
Gleich ob es sich um Online-Magazine, Blogs oder sonstige Websites handelt, zu einem abgerundeten
Online-Angebot gehören oftmals Newsfeeds.
Wie und in welchem Format diese Newsfeeds generiert werden, hängt hingegen nicht nur von den jeweiligen
Anbietern ab, sondern von der verwendeten Software, welche die Anbieter zur Generierung der Newsfeed
benutzen, wobei die Bereitstellung von mit HTML-Tags oder CSS formatierten Content in CDATA-Abschnitten
eine gängige Praxis ist.
Wer nur Newsfeeds liest, braucht sich über die Bereitstellung und über die verwendeten Formate keine
Gedanken zu machen. Völlig anders sieht es hingegen bei Webmastern aus, die einen Feedreader in ihr
eigenes Webangebot integrieren möchten, dabei auf Newsfeeds aus unterschiedlichen Quellen zugreifen. Wer
dabei einen einfachen, selbstgebastelten Feedreader für RSS- oder Atom-Feeds benutzt und nur Newsfeeds
aus vertrauenswürdigen Quellen ausliest, um diese in eine seiner Webseiten zu laden, wird nur selten,
unter Umständen nie Probleme bekommen. Er wird selbst dann kaum mit ernsthaften Problemen rechnen
müssen, wenn er sich gar keine Gedanken betreffend der Sicherheit macht.
Dennoch sollte eigentlich bei allen selbstgeschriebenen Scripts die Sicherheit nie vernachlässigt werden und so praktisch CDATA-Abschnitte für die Anbieter und Bereitsteller von Newsfeed auch sein mögen, ebenso einfach ermöglichen diese Abschnitte die Einschleusung von Schadcode, zumal keine Absicherung der Ausgabe mit htmlspecialchars oder htmlentities möglich ist, ohne HTML-Tags sichtbar anzuzeigen. Falls es sich dann bei einem Anbieter von Feeds um ein schwarzes Schaf handeln sollte, könnte dieser diese Schwachstelle ausnutzen.
Es sei bemerkt, eine hundertprozentige Sicherheit für
Webanwendungen gibt es nicht und wer auf der Suche nach Schwachstellen ist, wird möglichweise fündig.
Was jedoch nicht bedeutet, dass ein Programmierer eine Anwendung nicht absichern sollte. Für die Ausgabe
von HTML haben sich dabei die beiden PHP-Funktionen htmlspecialchars und htmlentities bewährt.
Um nun mit HTML-Tags formatierten Hypertext bei der Ausgabe mit htmlspecialchars absichern zu können,
werden in den vorgestellten Scripts (Versionen 1.04 bis 1.06) zuerst alle erlaubten HTML-Tags in BBCode
umgewandelt und HTML-Tags, die nicht für eine Umwandlung und Ausgabe vorgesehen sind, entfernt. Bei der
eigentlichen Ausgabe erfolgt zuerst eine Absicherung der Ausgabe mit htmlspecialchars, an der sich in
einem zweiten Schritt die Zurückverwandlung der erlaubten Tags von BBCode in HTML-Tags anschließt.
Weiterhin findet eine Überprüfung von Linkverweisen auf unerlaubte Zeichen und eine Überprüfung von in
CDATA-Abschnitten referenzierten Grafiken auf Vorhandensein statt, wobei nur Images mit dem MIME-Typ JPG
oder PNG erlaubt werden. Zusätzlich werden übergroße Grafiken auf ein durch den Anwender vorzugebenes
Maß skaliert.
Die Web-Adresse eines Feeds sollte im editierbaren Bereich vorgewählt werden. Weitere Feeds können durch Eingabe der URL aufgerufen werden, insoweit das zum Funktionsumfang des Scripts gehörende Formular eingeblendet wird.
Wir raten aus Sicherheitsgründen jedoch dazu, das Formular nur bei der
Erprobung einzublenden, bei der Veröffentlichung im Internet hingegen auszublenden. Nur so ist
sichergestellt, dass Unbefugte keine Feeds aus fragwürdigen Quellen aufrufen können. Die Ein- und
Ausblendung des Formulars erfolgt, in dem der Variablen $formu ein entsprechender boolescher Wert
zugewiesen wird, bzw. in dem die Variable mit true oder false initialisiert wird.
Das Script kann entsprechend der den Zip-Archiven beiliegenden Lizenz und den daraus hervorgehenden
Lizenzbedingungen frei für private Websites und Webprojekte und bedingt in kommerziellen Webprojekten
und Applikationen verwendet werden, insofern ein Quellenvermerk gut sichtbar als Linkverweis gesetzt
wird. Nähere Einzelheiten entnehmen Sie bitte der Lizenz. Unsere Lizenz ist einsehbar unter:
» Lizenz für Software
Ein lokaler Einsatz des Scripts ist ebenso möglich, wie eine Einbindung in kleinere oder größere
Webprojekte.
Der HM-Feedleser liegt seit Anfang Juni 2013 in der Release-Version 1.0
vor (Release: fertige Version) und in mehreren Varianten. Die Varianten unterscheiden sich jedoch nur
dadurch, dass bei den etwas einfacheren Varianten die Feeddateien mit Hilfe der PHP-Funktion
file_get_contents geladen werden, bei den anderen Varianten die Initialisierung einer Verbindung
hingegen mit Hilfe von cURL realisiert wird.
Weiterhin wurde die PHP Version berücksichtigt, so dass bei den Varianten für PHP 5 bis 5.3 statt
anonymer Funktionen, wie bei function ($bilder) und innerhalb der Funktion preg_replace_callback,
create_function() benutzt wurde. Die Funktionalität der Varianten ist hingen gleich. Vor dem Download
sollten Sie sich jedoch informieren, welche PHP Version Ihnen innerhalb Ihres Webspaces zur Verfügung
steht.
Code der zum HM-Feedleser gehörenden Dateien:
Download »
Neuste Version » Zum leichteren Einbinden in bestehende Webseiten wurden bei dieser Version die
Funktionen zu einer Klasse vereint und ausgelagert »
Weitere Versionen »
Als Plugin für WordPress »
***