요, 로버트!
포스트 제어(액션) 관련 플러그인 코드와 코드베이스를 분석해 왔습니다. 보안 측면에서 제가 가장 많이 개선할 수 있는 부분을 확인하기 위해서였죠.
분석 결과! 프론트엔드에서는 사용자가 포스트를 편집할 수 있는지 여부를 확인하는 몇 가지 단계가 있습니다. 예를 들어:
- 1단계: SiteSetting.post_menu_hidden_items
- 2단계: attrs.canEdit
- 3단계: editPost() - !post.can_edit - controllers/topic
하지만 프론트엔드에서 조작되더라도 posts_controller.rb의 백엔드 서버로 한 번만 전송되면, Rails가 최종 확인을 위해 포스트를 다시 요청합니다:
- !guardian.public_send(“can_edit?”, post)
- guardian.ensure_can_edit!(post)
- PostRevisor
귀한 통찰을 공유해 주셔서 감사합니다!
정말 훌륭합니다.