WP Manifestindependent plugin directory
manifest / content / psource-link-checker

PS Link Checker WP Registry grade D. High-severity findings · 5 findingsWP RegistryHigh-severity findings · 5 findingsOpen the reportD

Überprüft Deine Seite auf fehlerhafte Links und fehlende Bilder und benachrichtigt Dich im Dashboard, falls gefunden

★ 0stars
13release downloads
≈10active sites
1.0.9latest · 2mo ago

Install

Download psource-link-checker.zip From the 1.0.9 release on GitHub, Aug 20, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/power-source/psource-link-checker/releases/download/1.0.9/psource-link-checker.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Funktionierende Links sind keine Nebensache. Der PS Link Checker überwacht Deine Website automatisch auf defekte Links, fehlende Bilder und Weiterleitungen – und hilft Dir dabei, Deine Inhalte sauber und aktuell zu halten.

PS Link Checker ist eine für ClassicPress weiterentwickelte und gepflegte Version des beliebten Broken Link Checkers.

Dabei bleibt das Plugin nicht auf ClassicPress beschränkt: PS Link Checker funktioniert auch mit WordPress und kann dort ebenfalls zur automatischen Linkprüfung eingesetzt werden.

💡 Aus der Community: Einige Nutzer berichten, dass PS Link Checker bei ihnen stabiler bzw. fehlerfreier läuft als frühere Versionen des ursprünglichen Plugins.

Im Laufe der Zeit sammeln sich auf jeder Website Links an. Webseiten verschwinden, URLs ändern sich, Bilder werden gelöscht und externe Seiten werden umstrukturiert.

PS Link Checker übernimmt die Kontrolle und sucht automatisch nach Problemen in Deinen Inhalten.

Das kann PS Link Checker

  • 🔎 Überwacht Links in Beiträgen, Seiten und Kommentaren
  • 🔗 Unterstützt die Blogroll und benutzerdefinierte Felder
  • ❌ Erkennt defekte Links
  • 🖼️ Erkennt fehlende oder nicht erreichbare Bilder
  • ↪️ Erkennt Weiterleitungen
  • 📊 Zeigt den aktuellen Status Deiner Links übersichtlich im Backend
  • 📧 Benachrichtigt Dich optional per E-Mail
  • 🔔 Informiert Dich über das Dashboard
  • ✏️ Ermöglicht die Bearbeitung von Links direkt über die Plugin-Oberfläche
  • 🔍 Sucht und filtert Links nach URL, Ankertext, Status und weiteren Kriterien
  • 🎯 Unterstützt individuelle Linkfilter
  • ⚙️ Bietet umfangreiche Konfigurationsmöglichkeiten
  • 🚫 Kann verhindern, dass Suchmaschinen defekten Links folgen
  • 🎨 Kann defekte Links in Deinen Inhalten optisch kennzeichnen

Für ClassicPress und WordPress

PS Link Checker wurde mit einem klaren Fokus auf ClassicPress weiterentwickelt und modernisiert.

Gleichzeitig bleibt das Plugin mit WordPress kompatibel.

Damit eignet es sich sowohl für klassische WordPress-Projekte als auch für moderne ClassicPress-Websites.

Grundlegende Verwendung

Nach der Installation beginnt PS Link Checker damit, Deine Inhalte nach Links zu durchsuchen.

Dabei können unter anderem folgende Bereiche berücksichtigt werden:

  • Beiträge
  • Seiten
  • Kommentare
  • Blogroll / Lesezeichen
  • Benutzerdefinierte Felder

Je nach Größe Deiner Website und der Anzahl vorhandener Inhalte kann die erste Analyse einige Minuten bis hin zu einer Stunde oder länger dauern.

Anschließend überprüft PS Link Checker die gefundenen Links und ermittelt, ob sie funktionieren, weiterleiten oder nicht mehr erreichbar sind.

Den Fortschritt und die Einstellungen für die Linkprüfung findest Du unter:

Einstellungen → Link Checker

Gefundene Probleme werden übersichtlich unter

Werkzeuge → Defekte Links

angezeigt.

Zusätzlich informiert Dich das Dashboard-Widget „Defekte Links“ über erkannte Probleme.

Das Widget kann geschlossen bleiben, um Platz im Dashboard zu sparen, und so konfiguriert werden, dass es sich automatisch öffnet, sobald problematische Links gefunden wurden.

E-Mail-Benachrichtigungen

Auf Wunsch kann PS Link Checker Dich zusätzlich per E-Mail über erkannte Probleme informieren.

Die E-Mail-Benachrichtigungen lassen sich separat unter

Einstellungen → Link Checker

aktivieren.

Die Übersicht beschränkt sich nicht ausschließlich auf kaputte URLs.

Du kannst zwischen verschiedenen Linkzuständen wechseln und Dir beispielsweise anzeigen lassen:

  • defekte Links
  • Weiterleitungen
  • funktionierende Links
  • alle gefundenen Links

Über die Suchfunktion kannst Du die Ergebnisse zusätzlich eingrenzen.

Eigene Filter erstellen

Du kannst aus Deinen Suchergebnissen einen benutzerdefinierten Filter erstellen.

So kannst Du beispielsweise einen Filter anlegen, der ausschließlich Links aus Kommentaren anzeigt.

Damit lassen sich auch große Websites gezielt untersuchen, ohne sich durch eine endlose Liste arbeiten zu müssen.

Einer der größten Vorteile von PS Link Checker:

Du musst nicht jeden Beitrag einzeln öffnen, um einen defekten Link zu korrigieren.

Bewege den Mauszeiger über einen gefundenen Link, um die verfügbaren Aktionen anzuzeigen.

URL bearbeiten

Mit „URL bearbeiten“ kannst Du die Zieladresse eines Links direkt ändern.

Befindet sich dieselbe URL an mehreren Stellen – beispielsweise sowohl in einem Beitrag als auch in der Blogroll – können alle Vorkommen dieser URL gleichzeitig aktualisiert werden.

Verknüpfung aufheben

Mit „Verknüpfung aufheben“ entfernst Du den Link, während der vorhandene Linktext erhalten bleibt.

Nicht defekt

Nicht jeder vermeintlich defekte Link ist tatsächlich kaputt.

Ein Netzwerkfehler oder ein vorübergehendes Problem kann dazu führen, dass ein funktionierender Link fälschlicherweise als defekt erkannt wird.

Mit „Nicht defekt“ kannst Du einen solchen Link manuell als funktionierend markieren.

PS Link Checker überprüft ihn weiterhin regelmäßig. Erst wenn sich sein tatsächlicher Status entsprechend ändert, wird er wieder als problematisch behandelt.

Verwerfen

Mit „Verwerfen“ kannst Du einen Link aus den Ansichten „Defekte Links“ und „Weiterleitungen“ ausblenden.

Der Link wird weiterhin regulär geprüft und erhält auch weiterhin die entsprechenden Linkstile.

Er wird jedoch erst wieder in den entsprechenden Ansichten angezeigt, wenn sich sein Status verändert.

Ideal für Links, deren Status Du bereits überprüft hast und die Du bewusst so belassen möchtest.

Detaillierte Statusinformationen

Klicke in der Übersicht auf den Inhalt der Spalten „Status“ oder „Linktext“, um zusätzliche Informationen zum jeweiligen Link aufzurufen.

So kannst Du schnell nachvollziehen, warum ein Link als problematisch erkannt wurde.

Für kleine und große Websites

Ob persönliche Website, Blog, Community oder umfangreiches Content-Projekt:

PS Link Checker hilft Dir dabei, Deine Links im Blick zu behalten.

Gerade bei großen Websites können sich über die Jahre tausende Links ansammeln. Eine manuelle Kontrolle ist dann praktisch unmöglich.

PS Link Checker übernimmt diese Arbeit automatisch.

Open Source. Für ClassicPress und WordPress.

PS Link Checker wird von PSOURCE als Open-Source-Projekt weiterentwickelt.

Unser Ziel ist eine zuverlässige, moderne und langfristig nutzbare Lösung für die automatische Linkprüfung – ohne unnötige Einschränkungen und ohne versteckte Premium-Funktionen.

Einfach installieren. Aktivieren. Links prüfen lassen.

Damit Deine Website auch morgen noch funktioniert.

Releases

3 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.0.9 latest
Aug 20, 2026 2mo ago
psource-link-checker.zip
3
Jan 18, 2026 9mo ago
psource-link-checker.zip
7
Dec 27, 2025 10mo ago
psource-link-checker.zip
3

Active-site estimate ≈10 comes from the median of recent superseded releases. Method.

D grade

Security

PS Link Checker 1.0.9 · audited by WP Registry

High-severity findings.

2 high 3 medium
Audited release
1.0.9
Findings
5
Worst severity
high
Content hash
ce409c8e9ecfdfc93bd9e2ac…

Findings

  • high Editor+ SQL injection via custom filter where_expr

    sql_injection

    The Tools → Defekte Links page (capability edit_others_posts) accepts action=create-custom-filter. After a nonce check it stores $_POST['params'] verbatim in wp_blc_filters. When that filter is later executed, blcLinkQuery::compile_search_params() appends params['where_expr'] directly into the SELECT against wp_blc_links with no escaping or allowlist. Native filters use hardcoded where_expr values, but create_custom_filter does not restrict keys, so an Editor can POST params=where_expr=1 AND (SELECT SLEEP(5)) (or a UNION/subquery) and load tools.php?page=view-broken-links&filter_id=f{id}. The dangerous interpolation happens on data loaded from the DB, so wp_magic_quotes does not apply. This is the same class as upstream Broken Link Checker < 2.4.8 (CVE-2026-39466); this 1.0.9 fork never received that patch.

    includes/link-query.php:340-344

    Recommendation

    Allowlist custom-filter keys to the search form fields (s_link_text, s_link_url, s_filter, etc.). Never accept a client-supplied where_expr. Keep using $wpdb->prepare / esc_sql for any remaining dynamic SQL.

  • high SSRF via HTTP link checker (Editor retarget + unauth/author URL planting)

    ssrf

    blcCurlHttp::check() sends CURLOPT_URL from discovered/edited link URLs with CURLOPT_FOLLOWLOCATION, up to 10 redirects, and CURLOPT_SSL_VERIFYPEER/VERIFYHOST disabled. There is no blocklist for loopback, RFC1918, link-local, or metadata IPs. Editors (edit_others_posts) can ajax_edit any stored URL to http://169.254.169.254/latest/meta-data/ (or an attacker redirector) then ajax_recheck; the plugin stores response headers and, on GET fallback, 2KB of body in blc_links.log and prints that log unescaped-as-HTML to the same Editor on the details row. Independently, the comment container is active by default and parses comment_author_url plus comment_content; an unauthenticated commenter (once approved, or via pingback) or an Author putting a link in a post queues the same fetch through cron (blc_cron_check_links) or the dashboard worker (ajax_work, nonce printed on every admin page). Same class as upstream CVE-2024-10903 / later Editor+ SSRF advisories; this fork has no URL allowlist.

    modules/checkers/http.php:180-232

    Recommendation

    Before curl_exec, resolve the host and reject loopback, private, link-local, and metadata ranges (including after each redirect). Do not disable TLS verification. Consider blocking non-public URLs from comment author fields entirely.

  • medium Subscriber+ missing authorization on status and load AJAX

    missing_capability

    wp_ajax_blc_full_status, wp_ajax_blc_dashboard_status, and wp_ajax_blc_current_load are registered without a matching nopriv hook (so they require a login) but the callbacks never call current_user_can or check_ajax_referer. ajax_full_status JSON-encodes broken/unchecked/known link counts and HTML status text; ajax_current_load prints sys_getloadavg() /proc/loadavg. Any Subscriber can GET/POST admin-ajax.php?action=blc_full_status or blc_current_load. Matches upstream Broken Link Checker < 2.4.5 / CVE-2025-4047.

    core/core.php:61-62,2824-2834,2918-2927

    Recommendation

    Require current_user_can('edit_others_posts') (or the configured dashboard_widget_capability) and a nonce on all three handlers. Do not expose server load to unprivileged users.

  • medium CSRF on forced full recheck truncates link tables

    csrf

    options_page() is shown only to manage_options users, but the recheck branch runs on any POST with a non-empty recheck field and never calls check_admin_referer. initiate_recheck() TRUNCATEs wp_blc_instances and wp_blc_links then blc_resynch(true). The settings form does output a link-checker-options nonce, but the recheck path dies before that nonce is verified. A CSRF page can POST recheck=1 to options-general.php?page=link-checker-settings and wipe the plugin’s link database, forcing a full site reparse (CPU/network DoS).

    core/core.php:383-389,246-258

    Recommendation

    Call check_admin_referer('link-checker-options') before initiate_recheck(), and require an explicit manage_options check in the handler itself.

  • medium Admin+ stored XSS via unsanitized broken/removed-link CSS (unfiltered_html bypass)

    xss_stored

    Settings fields broken_link_css and removed_link_css are saved as raw strings (manage_options, nonce-protected) and later echoed inside <style> on every front-end request (wp_head) when mark_broken_links / mark_removed_links is enabled. A payload such as </style><script>alert(1)</script> breaks out of the style element and runs for all visitors. On multisite, site admins typically lack unfiltered_html but still have manage_options, so this is an unfiltered_html bypass (upstream CVE-2022-3922 / BLC < 1.11.20). The options page also printf’s the same CSS into an admin <style> block.

    includes/any-post.php:414-416

    Recommendation

    Strip tags from CSS settings (wp_strip_all_tags) and/or reject </style sequences before save and before echo. Do not print administrator CSS on the public front end without sanitization.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.