Yoo Robert !
J’ai analysé le code du plugin et la base de code concernant les contrôles des publications (actions), afin de déterminer où je pourrais le plus intervenir pour renforcer la sécurité.
Comme analysé ! Du côté du front-end, plusieurs étapes vérifient si l’utilisateur peut modifier ou non la publication, telles que :
- 1ère étape : SiteSetting.post_menu_hidden_items
- 2e étape : attrs.canEdit
- 3e étape : editPost() - !post.can_edit - controllers/topic
Cependant, même si le front-end est manipulé, une fois que la requête est envoyée au serveur back-end dans posts_controller.rb, dans la méthode :
def update
Le serveur re-requête la publication via Rails, comme ultime vérification :
- !guardian.public_send(“can_edit?”, post)
- guardian.ensure_can_edit!(post)
- PostRevisor
Merci pour tes éclairages !
C’est super.