← Zurück zum Katalog

Skill · Version 1.0.0

WordPress-Eingaben und Zugriffe schützen

Prüft Eingaben und Berechtigungen in WordPress-Formularen, AJAX-Handlern und REST-Routen. Unterscheidet die Prüfung der Anfrageabsicht von tatsächlichen Zugriffsrechten und sichert Ausgaben passend zum Darstellungskontext.

wordpress-security

Entdecke, wie der Skill hilft

Wann ist der Skill hilfreich?

Nutze diesen Skill, wenn ein Plugin oder Theme Eingaben, Uploads oder Änderungen geschützter Datensätze verarbeitet.

Wobei hilft er dir?

  • Validiert Eingaben und prüft sowohl Anfrage-Token als auch erforderliche Berechtigung.
  • Sichert Ausgaben und verwendet parametrisierte Datenbankabfragen.
  • Begrenzt Dateitypen, Dateigrößen und zugelassene Dateisystempfade.

Das könntest du fragen

Prüfe den Plugin-Endpunkt zum Ändern einer Veranstaltung samt Titelbild. Abgelaufene Anfrage-Token, fehlende Bearbeitungsrechte und eine übergroße ausführbare Datei müssen abgewiesen werden. Berechtigte Redakteure sollen erlaubte Bilder weiterhin speichern können; Veranstaltungstitel müssen als Text erscheinen.

Ausführliche Dokumentation

Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.

Details…Weniger anzeigen

WordPress Security

Escape output, late

  • Escape at the point of output for its context: esc_html for text, esc_attr for attributes, esc_url for links, esc_js for inline JS strings, esc_textarea for textareas.
  • Allowed HTML: wp_kses_post for post-like content, wp_kses with an explicit allowlist otherwise.
  • Use escaping i18n functions (esc_html__, esc_attr_e). Escape data you think is safe too: options, post meta, API responses.
  • Data for JS: wp_json_encode, wp_add_inline_script or wp_localize_script.

Sanitize input, early

  • Unslash, then sanitize superglobals: sanitize_text_field( wp_unslash( $_POST['x'] ?? '' ) ).
  • Use the specific sanitizer: absint, sanitize_email, sanitize_key, sanitize_title, sanitize_textarea_field, sanitize_file_name, esc_url_raw.
  • Validate enums, sort keys and statuses against an allowlist with in_array( $v, $allowed, true ).
  • register_setting with a sanitize_callback.

Nonces and capabilities on every handler

  • Every form, admin-post action, AJAX call and state-changing link carries a nonce (wp_nonce_field, wp_create_nonce) verified with check_admin_referer, check_ajax_referer or wp_verify_nonce.
  • A nonce proves intent, not permission: also check current_user_can() with the specific capability (edit_post with the ID, manage_options), never is_admin() or role names.
  • wp_ajax_nopriv_ handlers are public: treat their input as hostile and perform no privileged action there.
  • REST: every register_rest_route has a permission_callback checking capabilities; __return_true only for truly public read-only data. Validate args with schema callbacks.

Database

  • $wpdb->prepare() for every query containing variables, with %d, %s, %f (and %i for identifiers on WP 6.2+). Never interpolate.
  • $wpdb->esc_like() before adding LIKE wildcards.
  • Prefer WP APIs (WP_Query, get_posts, update_post_meta) and $wpdb->insert / update / delete with format arrays.

Files and redirects

  • Uploads through wp_handle_upload or media_handle_upload with an explicit mimes allowlist, wp_check_filetype_and_ext and a size cap. No unsanitized SVG.
  • Never include or read paths built from user input; check with validate_file and realpath against the allowed directory.
  • Redirect with wp_safe_redirect() followed by exit.

Configuration and secrets

  • No API keys, passwords or license keys in theme or plugin code; read them from wp-config.php constants or options, and never echo them into admin HTML.
  • Recommend DISALLOW_FILE_EDIT true in wp-config.php, WP_DEBUG_DISPLAY off in production, and no PHP execution in uploads.
  • Guard direct access at the top of PHP files: if ( ! defined( 'ABSPATH' ) ) { exit; }.

Dependencies

  • Keep plugins and themes updated; flag abandoned or vulnerable ones you encounter.
  • Bundle libraries through the repo's Composer or npm setup, at maintained versions, prefixed if they may clash.

Before you finish

  • All output escaped for its context; all input unslashed and sanitized.
  • Every form, AJAX and admin handler checks a nonce and a capability.
  • Every REST route has a real permission_callback.
  • All variable SQL goes through $wpdb->prepare.
  • Uploads restricted by type and size; no user-controlled paths.
  • No secrets in plugin or theme files; ABSPATH guards present.

Enthaltene Dateien 1

  • SKILL.md

Über dieses Skill-Paket

wordpress-security

wordpress-security: Macht Zugriffsregeln eindeutig und setzt sie auf dem Server durch, mit Berechtigungsszenarien und Audit-Nachweisen.

Details…Weniger anzeigen

wordpress-security

wordpress-security: Macht Zugriffsregeln eindeutig und setzt sie auf dem Server durch, mit Berechtigungsszenarien und Audit-Nachweisen.

Enthält den vollständigen Skill und seine Begleitdateien (1 Dateien). Der genaue, ursprünglich verfasste Anwendungsbereich bleibt unten erhalten.

Ursprüngliche Skill-Beschreibung (Quellsprache)

Use when WordPress PHP handles a form, admin page, AJAX, REST API endpoint, shortcode or user input and needs escape output, sanitize input, nonce and capability checks, current_user_can, $wpdb prepare, file upload limits or plugin and theme hardening.

Installiere den Skill, prüfe seine Quelle und Vertrauenseinstellungen und aktiviere ihn für das passende Projekt oder den Agenten.

Voraussetzungen

  • Orqestria auf deinem Computer installiert.