-
Notifications
You must be signed in to change notification settings - Fork 47
SVNmentions v1.0 implementation report #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| # SVNmentions-hook | ||
|
|
||
| Implementation Home Page URL: https://github.com/carrvo/SVNmentions-hook | ||
|
|
||
| Version: v1.0 | ||
|
|
||
| Source Code repo URL(s) (optional): | ||
| * [ ] 100% open source implementation | ||
|
|
||
| Programming Language(s): PHP | ||
|
|
||
| Developer(s): carrvo | ||
|
|
||
| Implementation Classes (Sender and/or Receiver): Sender | ||
|
|
||
|
|
||
| ## Sending | ||
|
|
||
| ### Discovery Tests (3.1.1) | ||
|
|
||
| MUST | ||
|
|
||
| * [ ] [Discovery Test #1](https://webmention.rocks/test/1) - HTTP Link header, unquoted rel, relative URL | ||
| * [ ] [Discovery Test #2](https://webmention.rocks/test/2) - HTTP Link header, unquoted rel, absolute URL | ||
| * [x] [Discovery Test #3](https://webmention.rocks/test/3) - HTML <link> tag, relative URL | ||
| * [x] [Discovery Test #4](https://webmention.rocks/test/4) - HTML <link> tag, absolute URL | ||
| * [x] [Discovery Test #5](https://webmention.rocks/test/5) - HTML <a> tag, relative URL | ||
| * [x] [Discovery Test #6](https://webmention.rocks/test/6) - HTML <a> tag, absolute URL | ||
| * [ ] [Discovery Test #7](https://webmention.rocks/test/7) - HTTP Link header with strange casing | ||
| * [x] [Discovery Test #8](https://webmention.rocks/test/8) - HTTP Link header, quoted rel | ||
| * [ ] [Discovery Test #9](https://webmention.rocks/test/9) - Multiple rel values on a <link> tag | ||
| * [ ] [Discovery Test #10](https://webmention.rocks/test/10) - Multiple rel values on a Link header | ||
| * [x] [Discovery Test #11](https://webmention.rocks/test/11) - Multiple Webmention endpoints advertised: Link, <link>, <a> | ||
| * [ ] [Discovery Test #12](https://webmention.rocks/test/12) - Checking for exact match of rel=webmention | ||
| * [ ] [Discovery Test #13](https://webmention.rocks/test/13) - False endpoint inside an HTML comment | ||
| * [ ] [Discovery Test #14](https://webmention.rocks/test/14) - False endpoint in escaped HTML | ||
| * [ ] [Discovery Test #15](https://webmention.rocks/test/15) - Webmention href is an empty string | ||
| * [x] [Discovery Test #16](https://webmention.rocks/test/16) - Multiple Webmention endpoints advertised: <a>, <link> | ||
| * [x] [Discovery Test #17](https://webmention.rocks/test/17) - Multiple Webmention endpoints advertised: <link>, <a> | ||
| * [ ] [Discovery Test #18](https://webmention.rocks/test/18) - Multiple HTTP Link headers | ||
| * [ ] [Discovery Test #19](https://webmention.rocks/test/19) - Single HTTP Link header with multiple values | ||
| * [ ] [Discovery Test #20](https://webmention.rocks/test/20) - Link tag with no href attribute | ||
| * [x] [Discovery Test #21](https://webmention.rocks/test/21) - Webmention endpoint has query string parameters | ||
| * [x] [Discovery Test #22](https://webmention.rocks/test/22) - Webmention endpoint is relative to the path | ||
| * [ ] [Discovery Test #23](https://webmention.rocks/test/23) - Webmention target is a redirect and the endpoint is relative | ||
|
|
||
| #### Implementation Notes | ||
|
|
||
| (Add implementation notes here, or remove this section) | ||
|
|
||
|
|
||
| ### Sending Tests (3.1.2) | ||
|
|
||
| MUST | ||
|
|
||
| * [x] Accepts HTTP 200 response as a success | ||
| * [x] Accepts HTTP 201 response as a success | ||
| * [x] Accepts HTTP 202 response as a success | ||
|
|
||
|
|
||
| ### Update Tests (3.1.3) | ||
|
|
||
| SHOULD | ||
|
|
||
| * [ ] [Update Test #1](https://webmention.rocks/update/1) - Simple update | ||
| * [ ] [Update Test #2](https://webmention.rocks/update/2) - Removing a link | ||
|
|
||
| #### Implementation Notes | ||
|
|
||
| (Add implementation notes here, or remove this section) | ||
|
|
||
|
|
||
| ### Delete Tests (3.1.4) | ||
|
|
||
| SHOULD | ||
|
|
||
| * [ ] [Delete Test #1](https://webmention.rocks/delete/1) - Simple delete | ||
|
|
||
| #### Implementation Notes | ||
|
|
||
| (Add implementation notes here, or remove this section) | ||
|
|
||
|
|
||
| ### Security Considerations (4) | ||
|
|
||
| * [ ] The sender avoids sending a Webmention to a loopback address (SHOULD) | ||
|
|
||
|
|
||
| ### Extensions | ||
|
|
||
| This implementation has also implemented the following extensions. | ||
|
|
||
| * [ ] [Salmention](http://indiewebcamp.com/Salmention) | ||
| * [ ] [Vouch](http://indiewebcamp.com/Vouch) | ||
| * [ ] [Private Webmention](http://indiewebcamp.com/Private-Webmention) | ||
| * [ ] Other: _______ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,110 @@ | ||
| # SVNmentions | ||
|
|
||
| Implementation Home Page URL: https://github.com/carrvo/SVNmentions | ||
|
|
||
| Version: v1.0 | ||
|
|
||
| Source Code repo URL(s) (optional): | ||
| * [ ] 100% open source implementation | ||
|
Comment on lines
+7
to
+8
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Project needs a license chosen |
||
|
|
||
| Programming Language(s): PHP | ||
|
|
||
| Developer(s): carrvo | ||
|
|
||
| Implementation Classes (Sender and/or Receiver): Receiver | ||
|
|
||
|
|
||
| ## Receiving | ||
|
|
||
| Indicate which type of response the receiver provides: | ||
|
|
||
| * [x] HTTP 200 - Receiver synchronously processes the Webmention request (not recommended) | ||
| * [ ] HTTP 201 - Receiver creates a status URL the sender can use to check the status of the Webmention | ||
| * [ ] HTTP 202 - Receiver processes the Webmention asynchronously | ||
|
|
||
| Describe the response body (if any) which is returned in the request: | ||
|
|
||
|
|
||
| ### Request Verification (3.2.1) | ||
|
|
||
| * [x] Verifies source and target are valid URLs, rejecting with HTTP 400 (MUST) | ||
| * [x] Verifies that target is a valid resource for which the receiver accepts Webmentions, rejecting with HTTP 400 (SHOULD) | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Has some target verification. Has the carrvo/SVNmentions#5 for an additional verification. |
||
| * [x] Ignores fragment when checking if target is supported (SHOULD) | ||
|
|
||
| ### Webmention Verification (3.2.2) | ||
|
|
||
| * [ ] Verification is processed asynchronously (SHOULD) | ||
| * [x] Follows at least one HTTP redirect on source URL (MUST) | ||
| * [x] Respects a self-imposed limit on number of HTTP redirects to follow (MUST) | ||
|
|
||
| #### Source URL content-types supported | ||
|
|
||
| Please list the content types that your implementation supports when checking if the source document links to the target URL. | ||
|
|
||
| * [x] HTML | ||
| * [ ] Other: ______ | ||
|
|
||
|
|
||
| ### HTML Verification (3.2.2) | ||
|
|
||
| The tests below apply when the source document is HTML. | ||
|
|
||
| * [x] Accepts a Webmention where the target URL is in an `<a>` tag | ||
| * [x] Accepts a Webmention where the target URL is in an `<img>` tag | ||
| * [x] Accepts a Webmention where the target URL is in an `<video>` tag | ||
| * [x] Accepts a Webmention where the target URL is in an `<audio>` tag | ||
| * [ ] Rejects a Webmention where the target URL is in the document as text | ||
| * [ ] Rejects a Webmention where the target URL is in an `<a>` tag **inside an HTML comment** | ||
| * [x] Rejects a Webmention where the target URL is not in the document | ||
|
Comment on lines
+52
to
+58
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does a raw text search on the source for the target. |
||
|
|
||
|
|
||
| ### Webmention Display/Use | ||
|
|
||
| * [ ] The receiver displays data from the source URL on the target post (MAY) | ||
|
|
||
| * [x] The receiver recognizes that the source URL is a "comment" or "reply" to the post | ||
| * [ ] using HTML markup: __________ | ||
|
Comment on lines
+65
to
+66
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Assumes all are comments. |
||
| * [ ] The receiver recognizes that the source URL is a "like" of the post | ||
| * [ ] using HTML markup: __________ | ||
| * [ ] The receiver recognizes that the source URL is a "repost" of the post | ||
| * [ ] using HTML markup: __________ | ||
| * [ ] The receiver recognizes that the source URL is an "RSVP" to the post | ||
| * [ ] using HTML markup: __________ | ||
| * [ ] The receiver recognizes additional response types, using markup: | ||
| * [ ] Response: __________ using HTML markup: __________ | ||
| * (Please add lines like above for additional response types the receiver has implemented) | ||
|
|
||
| Please describe any other ways the Webmention is displayed or used if applicable. | ||
|
|
||
|
|
||
| ### Update Tests (3.2.4) | ||
|
|
||
| * [x] Does not display an update Webmention as a new response (SHOULD) | ||
| * [ ] Removes the response when an update Webmention is sent and the source URL returns 200 and no link is found (SHOULD) | ||
| * [ ] Updates and stores the information from the primary object at the source URL (MUST) | ||
| * [ ] Updates and stores the information from children or descendant objects at the source URL (MAY) | ||
|
|
||
|
|
||
| ### Delete Tests (3.2.4) | ||
|
|
||
| * [ ] Recognizes an HTTP 410 response as a delete, and removes the response (SHOULD) | ||
|
|
||
|
|
||
| ### Security Considerations (4) | ||
|
|
||
| * [ ] Webmentions are moderated before being displayed (MAY) | ||
| * [ ] Webmentions are periodically re-verified (MAY) | ||
| * [ ] The receiver ensures any displayed data it properly encoded/filtered to prevent XSS attacks (MUST) | ||
| * [x] Respects a self-imposed limit on the time spent fetching the source URL (SHOULD) | ||
| * [ ] Respects a self-imposed limit on the number of bytes fetched from the source URL (SHOULD) | ||
| * [ ] The receiver accepts additional parameters or headers, and so has CSRF protection (SHOULD) | ||
|
|
||
|
|
||
| ### Extensions | ||
|
|
||
| This implementation has also implemented the following extensions. | ||
|
|
||
| * [ ] [Salmention](http://indiewebcamp.com/Salmention) | ||
| * [ ] [Vouch](http://indiewebcamp.com/Vouch) | ||
| * [ ] [Private Webmention](http://indiewebcamp.com/Private-Webmention) | ||
| * [ ] Other: _______ | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Untested but filled out based on expectation.