Die von mir verwaltete Website hat neben dem öffentlichen Teil ein nicht öffentliches Forum. Hierhin gelangt man nur nach Registrierung und Anmeldung. Das funktioniert auch so :razz:, ich habe nun aber festgestellt, das, wenn man die Seite im Browser (MS Explorer und ebenso Firefox) öffnet und den Feeds Button anklickt, die nicht öffentlichen Inhalte ohne Passwort-Rückfrage als Feed abonniert und abgespreichert werden können.
Wie kann man das verhindern?
Feeds für unberechtigte Sperren
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Wie hast Du denn die Zugangsbeschränkung für die normalen Seiten umgesetzt? Mit einem Plugin oder selbstgebaut?! Woran entscheidet sich, welche Inhalte öffentlich sind und welche nicht?
-
Ich habe da mal was für unsere Intranet programmiert, damti das klappt muss die Benutzersteuerung auf jeden Fall über Wordpress laufen. Hier an diesem Beispiel ist läuft sie zusätzlich noch über die Benutzerdefinierten Felder.
Du musst den "normalen" Feed deaktivieren
PHP
Alles anzeigen// Feed deaktivieren, wenn Benutzer nicht eingeloggt function feed_error() { wp_die( __('Sie müssen sich einloggen, um den RSS-Feed zu sehen!') ); } function disable_feed($query) { if (is_user_logged_in()) { if ($query->is_feed) { global $wpdb; $query->set('cat','-190,-191,-192'); } return $query; } else { add_action('do_feed', 'feed_error', 1); add_action('do_feed_rdf', 'feed_error', 1); add_action('do_feed_rss', 'feed_error', 1); add_action('do_feed_rss2', 'feed_error', 1); add_action('do_feed_atom', 'feed_error', 1); } } add_filter('pre_get_posts','disable_feed');Und danach erstellst du einfach einen benutzerdefinierten Feed
PHP
Alles anzeigenfunction own_feed($query) { if ($query->is_feed) { //if (is_user_logged_in()) { global $wpdb; global $current_user; global $post; echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" <?php do_action('rss2_ns'); ?> > <channel> <title><?php bloginfo_rss('name'); wp_title_rss(); ?></title> <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" /> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss("description") ?></description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate> <?php the_generator( 'rss2' ); ?> <language><?php echo get_option('rss_language'); ?></language> <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod> <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency> <?php query_posts('cat=-198&posts_per_page=20&orderby=date&order=DESC'); // run the query while (have_posts()) : the_post(); if (group_rights(get_post_meta($post->ID, "group", true), get_the_ID()) == 1) { if (sub_group_rights(get_post_meta($post->ID, "sub_groups", true), get_the_ID()) == 1) { echo '<item>'; echo '<title>'. get_the_title_rss() .'</title>'; echo '<description><![CDATA['. trim(get_the_excerpt()) .']]></description>'; echo '<link>'. get_permalink($post->ID) .'</link>'; ?> <dc:creator><?php the_author() ?></dc:creator> <?php echo '<comments></comments>'; echo '<pubDate>'. mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false) .'</pubDate>'; the_category_rss(); echo '</item>'; } } endwhile; echo '</channel>'; echo '</rss>'; // Ausgabe des Originalen RSS-Feeds stoppen die(); //} } } add_filter('pre_get_posts','own_feed'); -
Vielen Dank!
REGA1976, ich bin erst jetzt dazu gekommen, Deinen Vorschlag auszuprobieren. Hat Prima geklappt, Vielen Dank für Deine Hilfe :razz:
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!