Yoo Robert!
Ho analizzato il codice del plugin e la codebase relativa ai controlli dei post (azioni), per verificare su quali potessi intervenire maggiormente in termini di sicurezza.
Come analizzato! Dal lato front-end ci sono alcuni passaggi che verificano se l’utente può modificare o meno il post, come:
- 1° passaggio: SiteSetting.post_menu_hidden_items
- 2° passaggio: attrs.canEdit
- 3° passaggio: editPost() - !post.can_edit - controllers/topic
Tuttavia, anche se manipolato dal front-end, una volta inviato al server back-end in posts_controller.rb, in
def update
viene richiesto nuovamente il post, tramite Rails, come controllo finale:
- !guardian.public_send(“can_edit?”, post)
- guardian.ensure_can_edit!(post)
- PostRevisor
Grazie per i tuoi spunti!
È fantastico.