|
26 | 26 | <supersededby/>
|
27 | 27 | <shortname>NOT_YET_ASSIGNED</shortname>
|
28 | 28 | &sam;
|
| 29 | + <revision> |
| 30 | + <version>0.4.0</version> |
| 31 | + <date>2025-03-11</date> |
| 32 | + <initials>gdk</initials> |
| 33 | + <remark><p>Add spam report processing opt-in.</p></remark> |
| 34 | + </revision> |
29 | 35 | <revision>
|
30 | 36 | <version>0.3.1</version>
|
31 | 37 | <date>2023-04-03</date>
|
|
141 | 147 | </text>
|
142 | 148 | </report>]]></example>
|
143 | 149 | </section1>
|
| 150 | +<section1 topic='Report Processing Opt-in' anchor='processing'> |
| 151 | + <p> |
| 152 | + Reports MAY contain user provided approval ('opt-in') for processing of the report. |
| 153 | + This document defines the following processing of a report: |
| 154 | + </p> |
| 155 | + <dl> |
| 156 | + <di> |
| 157 | + <dt>report-origin</dt> |
| 158 | + <dd>Forward the report to the domain where the reported message originated.</dd> |
| 159 | + </di> |
| 160 | + <di> |
| 161 | + <dt>third-party</dt> |
| 162 | + <dd>Forward the report to third-party entities that process reports for purposes |
| 163 | + including, but not limited to, the collection of statistics, analysis, and |
| 164 | + block list services.</dd> |
| 165 | + </di> |
| 166 | + </dl> |
| 167 | + <p> |
| 168 | + To express approval of a certain type of processing, a <report-origin> and/or |
| 169 | + <third-party> element is added to the report. |
| 170 | + </p> |
| 171 | + <example caption='Report with optional processing opt-in'><![CDATA[ |
| 172 | +<report xmlns="urn:xmpp:reporting:1" reason="urn:xmpp:reporting:spam"> |
| 173 | + <text xml:lang="en"> |
| 174 | + Never came trouble to my house like this. |
| 175 | + </text> |
| 176 | + <report-origin/> |
| 177 | + <third-party/> |
| 178 | +</report>]]></example> |
| 179 | + <p> |
| 180 | + Servers MAY ignore processing options when their implementation does not support |
| 181 | + the corresponding functionality. Servers MUST NOT process a report if the report |
| 182 | + that do not explicitly include the corresponding processing option. |
| 183 | + </p> |
| 184 | + <p> |
| 185 | + Servers MAY anonymize any submission to third-party services to protect the identity |
| 186 | + of the reporter. Servers SHOULD NOT protect the identity of the reported entity (the |
| 187 | + alleged spammer/abuser), as it hurts processing without adding any significant |
| 188 | + protection: it is likely that the origin server can easily look up the original |
| 189 | + stanza in their local message archive anyway. Servers can anonymize the report by |
| 190 | + removing the 'to' attribute of the reported message. |
| 191 | + </p> |
| 192 | +</section1> |
144 | 193 | <section1 topic='Use with the Blocking Command' anchor='blocking'>
|
145 | 194 | <p>
|
146 | 195 | To send a report, a report payload MAY be inserted into an <item/>
|
|
200 | 249 | the "block and report" dialog is accessed, and multiple JIDs when the
|
201 | 250 | "block" dialog is accessed.
|
202 | 251 | </p>
|
| 252 | + <p> |
| 253 | + Software clients may offer processing opt-in options to an end-user whenever |
| 254 | + they are reporting a message, but also could use a (configurable) default |
| 255 | + that is automatically applied to all reports issued by the client. |
| 256 | + </p> |
203 | 257 | </section1>
|
204 | 258 | <section1 topic='Internationalization Considerations' anchor='i18n'>
|
205 | 259 | <p>
|
|
235 | 289 | </section2>
|
236 | 290 | <section2 topic='Abuse Reporting Registry' anchor='registrar-reporting'>
|
237 | 291 | <p>
|
238 |
| - The XMPP Registrar shall maintain a registry of abuse report reasons. |
239 |
| - All abuse report reason registrations shall be defined in separate |
240 |
| - specifications (not in this document). Application types defined within |
241 |
| - the XEP series MUST be registered with the XMPP Registrar, resulting in |
242 |
| - protocol URNs representing the reason. |
| 292 | + The XMPP Registrar shall maintain a registry of abuse report reasons |
| 293 | + and abuse report processing opt-in options. All abuse report reason |
| 294 | + and processing opt-in registrations shall be defined in separate |
| 295 | + specifications (not in this document). Application types defined |
| 296 | + within the XEP series MUST be registered with the XMPP Registrar, |
| 297 | + resulting in protocol URNs representing the reason. |
243 | 298 | </p>
|
244 | 299 | ®PROCESS;
|
245 | 300 | <code>
|
|
250 | 305 | <doc>
|
251 | 306 | The document in which the report reason is specified.
|
252 | 307 | </doc>
|
253 |
| -</reason>]]></code> |
| 308 | +</reason> |
| 309 | +
|
| 310 | +<processing> |
| 311 | + <name>Element name representing the processing opt-in.</name> |
| 312 | + <namespace>A unique qualifier of the element name</namespace> |
| 313 | + <desc>A natural-language summary of the processing functionality.</desc> |
| 314 | + <doc> |
| 315 | + The document in which the report processing functionality is specified. |
| 316 | + </doc> |
| 317 | +</processing> |
| 318 | +]]></code> |
254 | 319 | </section2>
|
255 | 320 | <section2 topic='Abuse Reporting Reasons' anchor='registrar-reasons'>
|
256 | 321 | <p>This specification defines the following abuse reporting reasons:</p>
|
|
276 | 341 | <feature>urn:xmpp:reporting:abuse</feature>
|
277 | 342 | <desc>Used to report general abuse that is not covered by a more specific reason.</desc>
|
278 | 343 | <doc>XEP-0377</doc>
|
| 344 | +</reason>]]></code> |
| 345 | + </section2> |
| 346 | + <section2 topic='Abuse Reporting Processing' anchor='registrar-processing'> |
| 347 | + <p>This specification defines the following processing opt-in identifiers:</p> |
| 348 | + <ul> |
| 349 | + <li>report-origin</li> |
| 350 | + <li>third-party</li> |
| 351 | + </ul> |
| 352 | + <p> |
| 353 | + Upon advancement of this specification from a status of Experimental to |
| 354 | + a status of Draft, the ®ISTRAR; shall add the following definition to |
| 355 | + the abuse report processing opt-in options registry, as described in this |
| 356 | + document: |
| 357 | + </p> |
| 358 | + <code><![CDATA[ |
| 359 | +<processing> |
| 360 | + <name>report-origin</name> |
| 361 | + <namespace>urn:xmpp:reporting:spam</namespace> |
| 362 | + <desc>Forward the report to the domain where the reported message originated.</desc> |
| 363 | + <doc>XEP-0377</doc> |
| 364 | +</reason>]]></code> |
| 365 | + <code><![CDATA[ |
| 366 | +<reason> |
| 367 | + <name>third-party</name> |
| 368 | + <namespace>urn:xmpp:reporting:spam</namespace> |
| 369 | + <desc> |
| 370 | + Forward the report to third-party entities that process reports for purposes |
| 371 | + including, but not limited to, the collection of statistics, analysis, and |
| 372 | + block list services. |
| 373 | + </desc> |
| 374 | + <doc>XEP-0377</doc> |
279 | 375 | </reason>]]></code>
|
280 | 376 | </section2>
|
281 | 377 | </section1>
|
|
315 | 411 | <xs:sequence>
|
316 | 412 | <xs:element ref='sid:stanza-id' minOccurs='0' maxOccurs='unbounded'/>
|
317 | 413 | <xs:element ref='text' minOccurs='0' maxOccurs='unbounded'/>
|
| 414 | + <xs:element ref='report-origin' minOccurs='0' maxOccurs='1'/> |
| 415 | + <xs:element ref='third-party' minOccurs='0' maxOccurs='1'/> |
318 | 416 | </xs:sequence>
|
319 | 417 | <xs:attribute name='reason' type='xs:string' use='required'/>
|
320 | 418 | </xs:complexType>
|
|
334 | 432 | </xs:complexType>
|
335 | 433 | </xs:element>
|
336 | 434 |
|
| 435 | + <xs:element name='report-origin' type='empty'/> |
| 436 | +
|
| 437 | + <xs:element name='third-party' type='empty'/> |
| 438 | +
|
337 | 439 | <xs:simpleType name='empty'>
|
338 | 440 | <xs:restriction base='xs:string'>
|
339 | 441 | <xs:enumeration value=''/>
|
|
0 commit comments