Hallo Robert!
Ich habe den Plugin-Code und die Codebase rund um Post-Steuerung (Aktionen) analysiert, um herauszufinden, wo ich mich am besten für die Sicherheit einsetzen kann.
Wie analysiert: Auf der Frontend-Seite gibt es mehrere Schritte, die sicherstellen, ob ein Benutzer einen Beitrag bearbeiten darf oder nicht, wie:
-
- Schritt: SiteSetting.post_menu_hidden_items
-
- Schritt: attrs.canEdit
-
- Schritt: editPost() - !post.can_edit - controllers/topic
Aber selbst wenn das Frontend manipuliert wird, überprüft der Backend-Server in posts_controller.rb bei jedem Aufruf von
def update
erneut den Beitrag, und zwar durch Rails als letzte Sicherheitsmaßnahme:
- !guardian.public_send(“can_edit?”, post)
- guardian.ensure_can_edit!(post)
- PostRevisor
Vielen Dank für deine Einblicke!
Das ist wirklich großartig.