Inflearn brand logo image

인프런 커뮤니티 질문&답변

장근영님의 프로필 이미지
장근영

작성한 질문수

웹소켓/STOMP 채팅서비스(spring, vue, redis)

이전메시지조회

메시지 전송 시 검증

해결된 질문

작성

·

23

0

StompCommand.SEND 도 있길래 궁금해서 질문 남깁니다! 메시지 전송 시 subscribe할 때와 같은 검증을 할 필요는 없을까요?

"채팅방에 참여자여야 메시지를 보낼 수 있다" 라는 검증이 자연스러운 흐름이 될 수 있을 것 같다고 생각했습니다.

답변 2

0

bradkim님의 프로필 이미지
bradkim
지식공유자

안녕하세요 근영님.

일단, 좋은 질문 감사드립니다.

 

말씀해주신 내용을 고민해보니, send시점에도 사용자가 해당방의 참여자인지를 확인하는게 적절해 보입니다. 안 그러면 해당방에 참여자가 아닌데도 메시지를 발송할수 있을것 같습니다. 물론 메시지를 subscribe는 못하겠지만요.

 

말씀해주신 내용참고해서 서비스를 develop 시켜주시면 좋을것 같습니다.

장근영님의 프로필 이미지
장근영
질문자

답변 감사합니다!
그런데 "물론 메시지를 subscribe는 못하겠지만요." 라는 말이 무슨 의미인지 잘 이해가 안갑니다 ㅠㅠ
애초에 subscribe가 되어야 send가 가능하다는 의미일까요?

bradkim님의 프로필 이미지
bradkim
지식공유자

아하 subscribe는 참여자 여부 검증을 하고 있으니, 참여자가 아니라도 send는 할수있지만 참여자가 아니면 subscribe는 못하고 있을테니 메시지는 받지는 못하고 있을거란 말이었습니다.

 

현재 수업의 코드가 보낼수는 있지만 받지는 못하는 상태가 될수 있다는 뜻이었습니다.

장근영님의 프로필 이미지
장근영
질문자

아하 이해됐습니다. 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 장근영님.

메시지를 전송할 때 추가적인 검증이 필요할지에 대한 훌륭한 질문을 주셨습니다. 보안을 강화하고 올바른 사용성을 확보하기 위한 검토 사항을 다음과 같이 정리할 수 있습니다:

  1. 메시지 전송 검증의 필요성:

    • 메시지를 전송할 때, “채팅방에 참여해야 메시지를 보낼 수 있다”는 검증을 통해 채팅방 참여자에 대한 권한을 확실히 할 수 있습니다. 이는 비방이나 스팸 메시지를 방지하는 데에 큰 도움을 줄 수 있습니다.
  2. StompCommand.SEND 검증:

    • STOMP의 SEND 명령을 사용할 때, 메시지 전송 전에 사용자가 채팅방에 등록되어 있는지를 확인하는 로직을 추가하여 인증 및 권한 검사를 할 수 있습니다.
    • 메시지를 전송 시 사용자의 세션 정보를 확인하거나 상호작용하는 채팅방 맥락에서 해당 사용자가 유효한 참여자인지 확인하는 절차를 구현하는 것이 좋습니다.
  3. 적용 방안:

    • 서버 측에서 해당 메시지를 허용할 수 있는 사용자만 메시지를 전송하도록 필터링하는 방법이 있습니다.
    • 서버에 메시지를 전송하기 전에 클라이언트 단에서 가능한 검증을 수행하여 서버로의 부하를 줄일 수도 있습니다.

보다 심도 있는 관련 토론과 예제를 확인하시려면 아래 링크를 참고하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

장근영님의 프로필 이미지
장근영

작성한 질문수

질문하기