메시지 전송 시 검증
StompCommand.SEND 도 있길래 궁금해서 질문 남깁니다! 메시지 전송 시 subscribe할 때와 같은 검증을 할 필요는 없을까요?
"채팅방에 참여자여야 메시지를 보낼 수 있다" 라는 검증이 자연스러운 흐름이 될 수 있을 것 같다고 생각했습니다.
回答 2
0
안녕하세요 근영님.
일단, 좋은 질문 감사드립니다.
말씀해주신 내용을 고민해보니, send시점에도 사용자가 해당방의 참여자인지를 확인하는게 적절해 보입니다. 안 그러면 해당방에 참여자가 아닌데도 메시지를 발송할수 있을것 같습니다. 물론 메시지를 subscribe는 못하겠지만요.
말씀해주신 내용참고해서 서비스를 develop 시켜주시면 좋을것 같습니다.
0
답변 감사합니다!
그런데 "물론 메시지를 subscribe는 못하겠지만요." 라는 말이 무슨 의미인지 잘 이해가 안갑니다 ㅠㅠ
애초에 subscribe가 되어야 send가 가능하다는 의미일까요?
0
아하 subscribe는 참여자 여부 검증을 하고 있으니, 참여자가 아니라도 send는 할수있지만 참여자가 아니면 subscribe는 못하고 있을테니 메시지는 받지는 못하고 있을거란 말이었습니다.
현재 수업의 코드가 보낼수는 있지만 받지는 못하는 상태가 될수 있다는 뜻이었습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 장근영님.
메시지를 전송할 때 추가적인 검증이 필요할지에 대한 훌륭한 질문을 주셨습니다. 보안을 강화하고 올바른 사용성을 확보하기 위한 검토 사항을 다음과 같이 정리할 수 있습니다:
메시지 전송 검증의 필요성:
- 메시지를 전송할 때, “채팅방에 참여해야 메시지를 보낼 수 있다”는 검증을 통해 채팅방 참여자에 대한 권한을 확실히 할 수 있습니다. 이는 비방이나 스팸 메시지를 방지하는 데에 큰 도움을 줄 수 있습니다.
- 메시지를 전송할 때, “채팅방에 참여해야 메시지를 보낼 수 있다”는 검증을 통해 채팅방 참여자에 대한 권한을 확실히 할 수 있습니다. 이는 비방이나 스팸 메시지를 방지하는 데에 큰 도움을 줄 수 있습니다.
StompCommand.SEND 검증:
- STOMP의 SEND 명령을 사용할 때, 메시지 전송 전에 사용자가 채팅방에 등록되어 있는지를 확인하는 로직을 추가하여 인증 및 권한 검사를 할 수 있습니다.
- 메시지를 전송 시 사용자의 세션 정보를 확인하거나 상호작용하는 채팅방 맥락에서 해당 사용자가 유효한 참여자인지 확인하는 절차를 구현하는 것이 좋습니다.
- STOMP의 SEND 명령을 사용할 때, 메시지 전송 전에 사용자가 채팅방에 등록되어 있는지를 확인하는 로직을 추가하여 인증 및 권한 검사를 할 수 있습니다.
적용 방안:
- 서버 측에서 해당 메시지를 허용할 수 있는 사용자만 메시지를 전송하도록 필터링하는 방법이 있습니다.
- 서버에 메시지를 전송하기 전에 클라이언트 단에서 가능한 검증을 수행하여 서버로의 부하를 줄일 수도 있습니다.
- 서버 측에서 해당 메시지를 허용할 수 있는 사용자만 메시지를 전송하도록 필터링하는 방법이 있습니다.
보다 심도 있는 관련 토론과 예제를 확인하시려면 아래 링크를 참고하실 수 있습니다:
- STOMP에서 메시지 전송 및 연결 검증 처리 - 사용자 메시지 전송 및 연결 시 검증에 대한 정보 제공
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
ERD 질문
0
55
2
StompHandler 관한 질문
0
80
2
리프레시 토큰은 알아서 구현하면 되는건가요??
0
81
2
cors, csrf 직접 구현
0
65
1
JWT 필터구현
0
101
2
강의 잘듣고 있습니다. 혹시 다음 강의 계획은 없으신가요?
0
58
1
STOMP 동작 과정 질문
0
48
1
chain.doFilter()
0
45
1
자바 21로 소스 작성해도 되나요?
0
61
2
메시지 브로커 선택에 관한 질문
0
65
2
WebSocket과 Spring Security 질문
0
81
2
추가 커스텀 구현 질문 있습니다.
0
61
2
connect와 동시에 구독하는데 구독 검증이 꼭 필요한가요?
0
97
2
저도 동일한 질문인데
0
79
3
token이 필요한 엔드포인트에 의도적으로 토큰 누락시 대처
0
68
2
수업자료가 왜 다 나눠져있나요?
0
78
2
JWT 생성 시 subject 설정에 대한 질문
0
158
3
StompHandler 질문 있습니다.
0
82
2
앱 서비스일 경우
0
85
2
웹소켓 서버 재배포시 고려해야 할 상황 질문
0
110
2
배포 오류 질문
0
125
2
/connect 경로에 대한 토큰 검증의 필요성
0
78
1
JwtTokenProvider 작성중 오류 발생으로 문의드립니다.
0
98
2
수강료가 갑자기 인상됬던데 ㅠ
0
133
1

