Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 44 additions & 24 deletions xep-0377.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>Spam Reporting</title>
<title>Blocking Command Reports</title>
<abstract>
This document specifies a mechanism by which users can report spam and other
abuse to a server operator or other spam service.
This document specifies a mechanism by which reporting information can be attached to a Blocking Command (XEP-0191) request. It enables servers to process reports related to blocked entities while remaining focused on this specific workflow rather than general abuse reporting.
</abstract>
&LEGALNOTICE;
<number>0377</number>
Expand All @@ -28,6 +27,18 @@
<shortname>NOT_YET_ASSIGNED</shortname>
&sam;
&gdk;
<revision>
<version>0.4.1</version>
<date>2026-02-25</date>
<initials>gdk</initials>
<remark>
<ul>
<li>Explicitly constrain scope.</li>
<li>Renamed from 'Spam Reporting' to 'Blocking Command Reports'.</li>
<li>Specify optional reporter anonymization method.</li>
</ul>
</remark>
</revision>
<revision>
<version>0.4.0</version>
<date>2025-04-09</date>
Expand Down Expand Up @@ -72,13 +83,12 @@
</header>
<section1 topic='Introduction' anchor='intro'>
<p>
Many spam and abuse prevention techniques rely on users being able to report
other users who are sending unwanted messages, or specific instances of
abuse.
&xep0191; allows users to block spammers, but does not provide a mechanism
for them to report a reason for the block to the server operator.
This specification extends the blocking command to optionally provide an
abuse report.
Many spam and abuse prevention techniques rely on users being able to block
spammers. &xep0191; allows users to prevent unwanted messages, but does not
provide a mechanism for attaching a reason for the block to the server
operator. This specification extends the blocking command to optionally
include a report associated with the blocked entity. It is limited in scope
to this workflow and does not define a general-purpose reporting mechanism.
</p>
</section1>
<section1 topic='Background' anchor='background'>
Expand All @@ -98,11 +108,14 @@
</section1>
<section1 topic='Discovering Support' anchor='disco'>
<p>
Entities that support &xep0030; and abuse reporting using the blocking
command as defined in this spec MUST respond to service discovery requests
with a feature of 'urn:xmpp:reporting:1'.
Support for this namespace also indicates support for the abuse reporting
reasons defined in this document.
Entities that support &xep0030; and the inclusion of reporting information
in conjunction with the Blocking Command as defined in this specification
MUST respond to service discovery requests with a feature of
'urn:xmpp:reporting:1'.
Advertising this feature indicates that the entity can receive reports
attached to a block, including the abuse reasons defined in this document.
It does not imply support for independent or generic reporting of spam or
abuse outside of the Blocking Command workflow.
For example, a response from a server that supports reporting and
understands the abuse and spam reasons defined later in this specification
might look like the following:
Expand Down Expand Up @@ -189,18 +202,22 @@
that do not explicitly include the corresponding processing option.
</p>
<p>
Servers MAY anonymize any submission to third-party services to protect the identity
of the reporter. Servers SHOULD NOT protect the identity of the reported entity (the
alleged spammer/abuser), as it hurts processing without adding any significant
protection: it is likely that the origin server can easily look up the original
stanza in their local message archive anyway. Servers can anonymize the report by
removing the 'to' attribute of the reported message.
Servers MAY forward reports to third-party services. If a server chooses to
anonymize the reporter's identity, the only acceptable method is to remove
the 'to' attribute from the reported message within the report; no other
anonymization methods are defined by this specification. Servers SHOULD NOT
anonymize the reported entity (the blocked or allegedly abusive JID), as
doing so hinders processing and provides little practical privacy benefit,
since the origin server can typically retrieve the original message from
its local message archive. This ensures that any processing performed by
third-party services cannot reveal the identity of the reporter while
preserving the context necessary for handling the report.
</p>
</section1>
<section1 topic='Use with the Blocking Command' anchor='blocking'>
<section1 topic='Submitting Reports as Part of Blocking' anchor='blocking'>
<p>
To send a report, a report payload MAY be inserted into an &lt;item/&gt;
node sent as part of a request to block a spammer as defined in &xep0191;.
To send a report, a report payload MUST be included as part of an &lt;item/&gt;
node within a Blocking Command request as defined in &xep0191;.
For example:
</p>
<example caption='Report sent with blocking command'><![CDATA[
Expand All @@ -211,6 +228,9 @@
</item>
</block>
</iq>]]></example>
<p>
Reports submitted outside of a Blocking Command are outside the scope of this XEP.
</p>
<p>
Servers that receive a blocking command with a report MUST block the JID or
return an error just as they would if no report were present.
Expand Down
2 changes: 1 addition & 1 deletion xep.ent
Original file line number Diff line number Diff line change
Expand Up @@ -1678,7 +1678,7 @@ IANA Service Location Protocol, Version 2 (SLPv2) Templates</link></span> <note>
<!ENTITY xep0374 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0374.html'>OpenPGP for XMPP Instant Messaging (XEP-0374)</link></span> <note>XEP-0374: OpenPGP for XMPP Instant Messaging &lt;<link url='https://xmpp.org/extensions/xep-0374.html'>https://xmpp.org/extensions/xep-0374.html</link>&gt;.</note>" >
<!ENTITY xep0375 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0375.html'>XMPP Compliance Suites 2016 (XEP-0375)</link></span> <note>XEP-0375: XMPP Compliance Suites 2016 &lt;<link url='https://xmpp.org/extensions/xep-0375.html'>https://xmpp.org/extensions/xep-0375.html</link>&gt;.</note>" >
<!ENTITY xep0376 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0376.html'>Pubsub Account Management (XEP-0376)</link></span> <note>XEP-0376: Pubsub Account Management &lt;<link url='https://xmpp.org/extensions/xep-0376.html'>https://xmpp.org/extensions/xep-0376.html</link>&gt;.</note>" >
<!ENTITY xep0377 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0377.html'>Spam Reporting (XEP-0377)</link></span> <note>XEP-0377: Spam Reporting &lt;<link url='https://xmpp.org/extensions/xep-0377.html'>https://xmpp.org/extensions/xep-0377.html</link>&gt;.</note>" >
<!ENTITY xep0377 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0377.html'>Blocking Command Reports (XEP-0377)</link></span> <note>XEP-0377: Spam Reporting &lt;<link url='https://xmpp.org/extensions/xep-0377.html'>https://xmpp.org/extensions/xep-0377.html</link>&gt;.</note>" >
<!ENTITY xep0378 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0378.html'>OTR Discovery (XEP-0378)</link></span> <note>XEP-0378: OTR Discovery &lt;<link url='https://xmpp.org/extensions/xep-0378.html'>https://xmpp.org/extensions/xep-0378.html</link>&gt;.</note>" >
<!ENTITY xep0379 "<span class='ref'><link url='https://xmpp.org/extensions/xep-0379.html'>Pre-Authenticated Roster Subscription (XEP-0379)</link></span> <note>XEP-0379: Pre-Authenticated Roster Subscription &lt;<link url='https://xmpp.org/extensions/xep-0379.html'>https://xmpp.org/extensions/xep-0379.html</link>&gt;.</note>" >

Expand Down