Support » Plugins » Admin-Plugin – Interne Verlinkung funktioniert nicht

  • Hallo zusammen!

    Ich arbeite gerade an meinem ersten Admin-Plugin und soweit funktioniert auch alles wunderbar. Nun möchte ich aber innerhalb einer Datei in meinem Plugin zu einer anderen PHP-Datei verlinken welche sich ebenfalls im Plugin-Ordner befindet und auch dort die üblichen WP-Funktionen haben soll.

    Ich habe das Ganze einfach so versucht:
    window.open("sl-list.php?vId=" + vId);

    Aber da bekomme ich immer die Meldung dass die Wp-Funktion: get_current_user_id(); nicht vorhanden ist, obwohl ich diese auf der anderen Seite bereits benutze.

    Muss ich dem Plugin irgendwie sagen dass es da noch eine Seite gibt? Diese will ich jedoch nicht im Menü anlegen, sondern wirklich nur von einer internen Seite auf diese verweisen.

    Wäre super wenn mir jemand weiterhelfen kann.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • WordPress verwendet zum Schutz gegen Angriffe und Missbrauch so genannte Nonces, also einmal vergebene Nummern (Number used Once). Ich versuche den Sinn mal in wenigen Worten darzustellen: Während du in deinem Backend angemeldet bist, hast du vielleicht noch weitere Browsertabs geöffnet. In diesen könnte ein Link enthalten sein, der eine bestimmte Seite deines Backends aufruft und eine Funktion ausführt (ein Plugin installiert, einen Benutzer angelegt) und damit deine Anmeldung im anderen Tab missbraucht. Um das zu vermeiden, wird bei der aufgerufenen Backend-Seite geprüft, ob eine korrekte Nonce mitgeliefert wurde. Anderenfalls erhältst du einen Hinweis, dass du nicht berechtigt bist, diese Seite aufzurufen. Links von Dritten werden damit blockiert.
    Mit deinem JavaScript-Aufruf einer Backend-Seite erzeugst du eine Sicherheitslücke, weil der geschilderte Sicherheitsmechanismus nicht mehr greift. Nicht gut.

    Deine Meldung zu get_current_user_id(); hängt vermutlich damit zusammen, dass das Objekt WP_User nicht abgefragt werden kann. Hast du deine Funktion mit einem Hook in WordPress eingebunden ( z.B. mit add_action( ‚init‘, ‚deinefunktion‘ ); )?

    Ohne Code ist das ein wenig schwer zu beurteilen. Andererseits bist du bei Programmierfragen in Stackoverflow besser aufgehoben.

    Thread-Starter opflaum

    (@opflaum)

    Okay, das habe ich soweit verstanden. Kann ich aber der aufgerufenen Seite irgendwie sagen dass diese in Ordnung ist sofern diese aus dem Backend geöffnet wird?

    Ja, durch die Verwendung von Nonces.
    Vielleicht hilft dir dieser Eintrag im Plugin-Developer-Handbook weiter?

    https://developer.wordpress.org/plugins/security/nonces/

    Thread-Starter opflaum

    (@opflaum)

    okay super. Vielen lieben Dank. Ich werde es später mal versuchen und mich gegebenenfalls noch einmal melden. 🙂

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Admin-Plugin – Interne Verlinkung funktioniert nicht“ ist für neue Antworten geschlossen.