Discourse가 링크를 방문하지 않도록 강제하기

안녕하세요,

API를 사용하여 PM(개인 메시지)을 생성하고 있습니다. 메시지 콘텐츠에는 HTML과 링크가 포함될 수 있으며, 이 중 일부는 원클릭 액션 링크입니다. 기본 링크 예시: <a href="https://" target="_blank">..</a>

문제는 Discourse가 모든 링크를 방문하여 해당 원클릭 액션을 트리거한다는 것입니다.

이를 방지하는 방법은 무엇인가요? 이 문제를 일으키는 기능이 무엇인지 정확히 모르겠습니다.
HTML에 Discourse가 특정 링크를 무시하도록 알려주는 허용된 힌트를 삽입할 수 있나요?
아니면 제가 놓친 옵션이 있을까요?

참고: 현재 백엔드에 Discourse의 방문을 무시하는 체크를 추가했지만, 가능하면 이 의존성을 피하고 싶습니다.

감사합니다!

링크를 단순히 방문하는 것만으로 특정 동작이 실행되도록 코드를 작성해서는 안 됩니다. 이는 다양한 방식으로 악용될 수 있는 것으로 널리 인식되어 있습니다. 사용자는 해당 동작을 명시적으로 확인해야 합니다.

상황을 정리하자면, 사용자가 알림에 구독하고 있으며, 법적 이유로 현재 알림 또는 모든 알림에서 구독을 취소할 수 있도록 하는 링크를 추가해야 합니다. 해당 링크는 로그인, 확인 등 추가 단계 없이 한 번의 클릭으로 동작해야 합니다. 이러한 링크는 생성된 토큰을 사용하며 악용할 수 없습니다. 사용자는 이러한 링크가 포함된 메시지를 개인 받은 편지함(Discourse 또는 Gmail 등)에서 확인하게 되며, 이 경우 확인 단계는 원치 않으며 도움이 되지 않습니다.

제 질문은 여전히 유효합니다. Discourse가 링크를 방문하지 않도록 하는 방법이 있을까요? HTML이나 옵션을 통해 가능할까요?

상황과 무관하게, 이를 알아보는 것 자체가 흥미롭습니다. 만약 그런 기능이 없다면, 불필요한 요청을 방지하기 위해 도메인/URL을 블랙리스트에 추가할 수 있는 옵션이 있다면 매우 환영할 것입니다.

다시 말하지만: 그렇게 할 수 없습니다. 페이지에서 발견한 링크를 미리 방문하거나 사전 로드하는 브라우저(확장 프로그램)와 바이러스 스캐너도 존재합니다.

HTTP 사양에 따라 서버에서 실제 변경을 유발하는 모든 요청은 POST 요청이어야 합니다. 따라서 링크를 사용하는 경우, POST 요청을 실행하는 버튼을 포함하는 웹 페이지로 연결해야 합니다. 그 외의 방식은 이해하기 어려운 문제를 초래합니다.

그렇게 되어야 한다는 근거가 어디에 있습니까? 위에서 언급한 바로 그 이유 때문에 구독 해지 링크가 확인 웹 페이지로 연결되는 것은 매우 일반적인 일입니다.

사실 꽤 타당한 이유입니다. 그 점은 생각하지 못했네요. :thinking:

무엇보다 제 클라이언트입니다. :smile:
처음에는 폼을 만들었지만, 그는 원클릭 액션 링크를 원했습니다.

하지만 매우 타당한 점을 지적해 주셨네요, 알려주셔서 감사합니다!