mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-21 23:28:51 -05:00
Add spam reporting XEP to inbox
Squashed commit of the following: commit 3d11cf8b203919593418fe80a9e2a06e25906883 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 18:25:45 2016 -0500 Tweak introduction commit 42975134979aed956115c05a9596797c58c4812a Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 18:23:36 2016 -0500 Clean up versioning and internationalization refs commit f3e935a971b25be6601bb593c96c1882581fe2c3 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 18:07:12 2016 -0500 s/SHOULD/MUST/ for sending a single reason commit 48cf3906407789bdb4e9e3602b7b9e6c952c9878 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 18:06:00 2016 -0500 Add disco commit 349a6197e76d28c223ee3150cacc17d7f545d8bb Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:59:12 2016 -0500 Servers that get a report should block as normal commit 268f83a3158d3b4e57a1831852ee4ad0ae6c3ac8 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:56:28 2016 -0500 Change a "may" to a "MAY" commit 525e52359044481ce793a82149e6e3df910c7026 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:55:47 2016 -0500 Clarify that only one reason should be sent commit e4853977dac79a307df8dab6defd28b4f55f87b9 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:53:14 2016 -0500 Remove Business Rules section This is only a UI and shouldn't have any logic commit 42ff81dffb90560d164db8267425c241a3480be6 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:52:07 2016 -0500 Clarify language by adding comma commit be9109abca6347fe882443de4c83218224600183 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:49:46 2016 -0500 Add Acknowledgements commit 544db35d28d6ccfad47522bc67d9b185ad0ec2c7 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:41:37 2016 -0500 Update reason descriptions commit 0a33471483ac74562e6e1c2014a47c7085b62be5 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:37:56 2016 -0500 s/profile/reason/ commit 7c639c1ff918fd55bfc3a03984e0caf39b576efa Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:37:10 2016 -0500 Add urn to registry entry commit 5516f4a867de5da69de317f7d358cc6a9e77cd49 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:35:16 2016 -0500 Add ability to report spam with blocking command commit 757f8b1235fbe87fb53990aa4777651b8b1640c0 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:26:45 2016 -0500 Update examples commit e78d3ee413039c6b8a8d8797fe93e709e744c2ca Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 17:18:52 2016 -0500 Use entity for legal notice commit 91cb57455352d0069a6048231980a959e42856ca Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 13:04:29 2016 -0500 Add registrar considerations section commit 8ce2c9c24cd7a435c830ac29119ac7fc998a6268 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 12:45:41 2016 -0500 Add internationalization considerations commit fff8948d01cba06415fd33caff5e5df870a1db68 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 12:28:22 2016 -0500 Rewrap paragraph commit 9d8d491b25b20cad2e3f2bafc2248377b820fb98 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 11:59:33 2016 -0500 Start filling out the payload section commit c777243b871c49bd1d410be0f3449f08217f1ad0 Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 11:05:33 2016 -0500 Add todo around registrar commit 9248cf4aa494a7be84421f1acd50c7e521afec5f Author: Sam Whited <sam@samwhited.com> Date: Sat May 21 11:03:04 2016 -0500 Initial spam reporting commit
This commit is contained in:
parent
3792a76437
commit
342d2ac56a
227
inbox/spam-report.xml
Normal file
227
inbox/spam-report.xml
Normal file
@ -0,0 +1,227 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
||||
<!ENTITY % ents SYSTEM 'xep.ent'>
|
||||
%ents;
|
||||
]>
|
||||
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
||||
<xep>
|
||||
<header>
|
||||
<title>Spam Reporting</title>
|
||||
<abstract>
|
||||
This document specifies a mechanism by which users can report spam and other
|
||||
abuse to a server operator or other spam service.
|
||||
</abstract>
|
||||
&LEGALNOTICE;
|
||||
<number>xxxx</number>
|
||||
<status>ProtoXEP</status>
|
||||
<type>Standards Track</type>
|
||||
<sig>Standards</sig>
|
||||
<approver>Council</approver>
|
||||
<dependencies>
|
||||
<spec>XMPP Core</spec>
|
||||
<spec>XMPP IM</spec>
|
||||
<spec>XEP-0191</spec>
|
||||
</dependencies>
|
||||
<supersedes/>
|
||||
<supersededby/>
|
||||
<shortname>NOT_YET_ASSIGNED</shortname>
|
||||
&sam;
|
||||
<revision>
|
||||
<version>0.0.1</version>
|
||||
<date>2016-05-21</date>
|
||||
<initials>ssw</initials>
|
||||
<remark><p>First draft.</p></remark>
|
||||
</revision>
|
||||
</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.
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='Discovering Support' anchor='disco'>
|
||||
<p>
|
||||
Entities that support &xep0030; and abuse reporting MUST respond to service
|
||||
discovery requests with a feature of 'urn:xmpp:reporting:0' and with a
|
||||
feature for each reason supported by the responding entity as described in
|
||||
the relavant specifications. Eg. 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:
|
||||
<example caption="Service discovery information response"><![CDATA[
|
||||
<iq from='shakespeare.lit'
|
||||
id='ku6e51v3'
|
||||
to='kingclaudius@shakespeare.lit/castle'
|
||||
type='result'>
|
||||
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||||
<feature var='urn:xmpp:reporting:0'/>
|
||||
<feature var='urn:xmpp:reporting:reason:abuse:0'/>
|
||||
<feature var='urn:xmpp:reporting:reason:spam:0'/>
|
||||
</query>
|
||||
</iq>
|
||||
]]></example>
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='Payload' anchor='payload'>
|
||||
<p>
|
||||
The payload for reporting abuse to the server takes the form of a
|
||||
<report/> qualified by the 'urn:xmpp:reporting:0' namespace &VNOTE;.
|
||||
Report payloads are reusable and MUST NOT be sent without first being
|
||||
wrapped in a stanza.
|
||||
</p>
|
||||
<example caption='The most basic report payload'><![CDATA[
|
||||
<report xmlns="urn:xmpp:reporting:0" />]]></example>
|
||||
<p>
|
||||
Abuse reports MAY include a reason for the report and servers MUST tolerate
|
||||
unknown XML elements in a report without making assumptions about the
|
||||
semantic meaning of unknown elements.
|
||||
</p>
|
||||
<p>
|
||||
This document defines the following reasons for a report:
|
||||
</p>
|
||||
<dl>
|
||||
<dt><spam/></dt>
|
||||
<dd>Used for reporting a JID that is sending unwanted messages.</dd>
|
||||
<dt><abuse/></dt>
|
||||
<dd>Used for reporting general abuse.</dd>
|
||||
</dl>
|
||||
<p>
|
||||
Clients MUST include only one reason per report.
|
||||
</p>
|
||||
<p>
|
||||
Reports MAY contain a user provided message explaining or providing context
|
||||
about the reason for the report. See also the
|
||||
<link url='#i18n'>Internationalization Considerations</link> section of this
|
||||
document.
|
||||
</p>
|
||||
<example caption='Report with optional reason and text'><![CDATA[
|
||||
<report xmlns="urn:xmpp:reporting:0">
|
||||
<text xml:lang="en">
|
||||
Never came trouble to my house like this.
|
||||
</text>
|
||||
<spam/>
|
||||
</report>]]></example>
|
||||
</section1>
|
||||
<section1 topic='Use with the Blocking Command' anchor='blocking'>
|
||||
<p>
|
||||
To send a report, a report payload MAY be inserted into an <item/>
|
||||
node sent as part of a request to block a spammer as defined in &xep0191;.
|
||||
For example:
|
||||
</p>
|
||||
<example caption='Report sent with blocking command'><![CDATA[
|
||||
<iq from='juliet@capulet.com/chamber' type='set' id='block1'>
|
||||
<block xmlns='urn:xmpp:blocking'>
|
||||
<item jid='romeo@montague.net'>
|
||||
<report xmlns="urn:xmpp:reporting:0">
|
||||
<abuse/>
|
||||
</report>
|
||||
</item>
|
||||
</block>
|
||||
</iq>]]></example>
|
||||
<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. Servers then
|
||||
MAY take other actions based on the report, however, such actions are
|
||||
outside the scope of this document.
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='Implementation Notes' anchor='impl'>
|
||||
<p>
|
||||
Clients that support sending reports as part of the blocking command SHOULD
|
||||
expose interfaces to both block a JID without reporting it as abusive, and
|
||||
to block and report a JID.
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='Internationalization Considerations' anchor='i18n'>
|
||||
<p>
|
||||
If one or more <text/> elements are present they SHOULD include
|
||||
'xml:lang' attributes specifying the natural language of the XML character
|
||||
data.
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='Security Considerations' anchor='security'>
|
||||
<p>
|
||||
This document introduces no additional security considerations above and
|
||||
beyond those defined in the documents on which it depends.
|
||||
</p>
|
||||
</section1>
|
||||
<section1 topic='IANA Considerations' anchor='iana'>
|
||||
<p>This document requires no interaction with &IANA;.</p>
|
||||
</section1>
|
||||
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
||||
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
|
||||
<p>This specification defines the following XML namespace:</p>
|
||||
<ul>
|
||||
<li>urn:xmpp:reporting:0</li>
|
||||
</ul>
|
||||
<p>
|
||||
Upon advancement of this specification from a status of Experimental to
|
||||
a status of Draft, the ®ISTRAR; shall add the foregoing namespace to
|
||||
the registry located at &DISCOFEATURES;, as described in Section 4 of
|
||||
&xep0053;.
|
||||
</p>
|
||||
</section2>
|
||||
<section2 topic='Namespace Versioning' anchor='registrar-versioning'>
|
||||
&NSVER;
|
||||
</section2>
|
||||
<section2 topic='Abuse Reporting Registry' anchor='registrar-reporting'>
|
||||
<p>
|
||||
The XMPP Registrar shall maintain a registry of abuse report reasons.
|
||||
All abuse report reason registrations shall be defined in separate
|
||||
specifications (not in this document). Application types defined within
|
||||
the XEP series MUST be registered with the XMPP Registrar, resulting in
|
||||
protocol URNs of the form "urn:xmpp:reporting:reason:name:X" (where
|
||||
"name" is the registered name of the reason and "X" is a non-negative
|
||||
integer).
|
||||
</p>
|
||||
®PROCESS;
|
||||
<code>
|
||||
<![CDATA[<reason>
|
||||
<name>The name of the abuse report reason.</name>
|
||||
<urn>urn:xmpp:reporting:reason:{name}:{ver}</urn>
|
||||
<desc>A natural-language summary of the reason.</desc>
|
||||
<doc>
|
||||
The document in which the report reason is specified.
|
||||
</doc>
|
||||
</reason>]]></code>
|
||||
</section2>
|
||||
<section2 topic='Abuse Reporting Reasons' anchor='registrar-reasons'>
|
||||
<p>This specification defines the following abuse reporting reasons:</p>
|
||||
<ul>
|
||||
<li>urn:xmpp:reporting:reason:spam:0</li>
|
||||
<li>urn:xmpp:reporting:reason:abuse:0</li>
|
||||
</ul>
|
||||
<p>
|
||||
Upon advancement of this specification from a status of Experimental to
|
||||
a status of Draft, the ®ISTRAR; shall add the following definition to
|
||||
the abuse reporting reasons registry, as described in this document:
|
||||
<code><![CDATA[<reason>
|
||||
<name>Spam</name>
|
||||
<urn>urn:xmpp:reporting:reason:spam:0</urn>
|
||||
<desc>Used to report a JID that was sending spam messages.</desc>
|
||||
<doc>XEP TODO</doc>
|
||||
</reason>]]></code>
|
||||
<code><![CDATA[<reason>
|
||||
<name>Abuse</name>
|
||||
<urn>urn:xmpp:reporting:reason:abuse:0</urn>
|
||||
<desc>Used to report general abuse that is not covered by a more specific reason.</desc>
|
||||
<doc>XEP TODO</doc>
|
||||
</reason>]]></code>
|
||||
</p>
|
||||
</section2>
|
||||
</section1>
|
||||
<section1 topic='XML Schema' anchor='schema'>
|
||||
<p>TODO</p>
|
||||
</section1>
|
||||
<section1 topic='Acknowledgements' anchor='acknowledgements'>
|
||||
<p>
|
||||
Thanks to the participants of the XMPP Summit 20 in Austin, TX who
|
||||
discussed this XEP: specifically to Waqas Hussain, Kevin Smith, Lance
|
||||
Stout, and Matthew Wild. A special thanks to Daniel Wisnewski for giving
|
||||
the presentation that kicked off the anti-abuse work.
|
||||
</p>
|
||||
</section1>
|
||||
</xep>
|
Loading…
Reference in New Issue
Block a user