{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/pubsub/issues/42","repository_url":"https://api.github.com/repos/w3c/pubsub","labels_url":"https://api.github.com/repos/w3c/pubsub/issues/42/labels{/name}","comments_url":"https://api.github.com/repos/w3c/pubsub/issues/42/comments","events_url":"https://api.github.com/repos/w3c/pubsub/issues/42/events","html_url":"https://github.com/w3c/pubsub/issues/42","id":187137238,"number":42,"title":"Subscription verification request is not authenticated/protected","user":{"login":"aaronpk","id":113001,"avatar_url":"https://avatars.githubusercontent.com/u/113001?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronpk","html_url":"https://github.com/aaronpk","followers_url":"https://api.github.com/users/aaronpk/followers","following_url":"https://api.github.com/users/aaronpk/following{/other_user}","gists_url":"https://api.github.com/users/aaronpk/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronpk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronpk/subscriptions","organizations_url":"https://api.github.com/users/aaronpk/orgs","repos_url":"https://api.github.com/users/aaronpk/repos","events_url":"https://api.github.com/users/aaronpk/events{/privacy}","received_events_url":"https://api.github.com/users/aaronpk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-03T17:28:33Z","updated_at":"2016-11-03T17:48:09Z","closed_at":null,"body":"I am currently writing a subscriber. [Section 4.3](https://www.w3.org/TR/pubsub/#hub-verifies-intent) describes the verification request that hub sends, where the subscriber is supposed to echo back the challenge.\r\n\r\n1) My subscriber requests the subscription from the hub.\r\n2) The hub asynchronously makes a request back to the subscriber to verify the subscription request.\r\n3) I use that request to mark that the subscription was successful. If the hub never makes that verification request, then I know something went wrong and can mark the subscription as not yet active.\r\n\r\nThe problem lies in that the verification request is a GET request with no secret information, so anybody could forge a verification request to my subscriber. A forged request could also set the `lease_seconds` to something that could trick the subscriber into thinking things are different.\r\n\r\nPotential solutions:\r\n\r\n* The hub could include the `hub.secret` that the subscriber sent in the first place (Probably not a good idea since this is sent in a GET request and secrets in query parameters is generally bad)\r\n* The hub could use the `hub.secret` to compute a digest of the other query parameters, and pass the digest in the request as well.\r\n* Add a new parameter to the subscription and verification used for this purpose.\r\n* Other thoughts?"},"comment":{"url":"https://api.github.com/repos/w3c/pubsub/issues/comments/258220516","html_url":"https://github.com/w3c/pubsub/issues/42#issuecomment-258220516","issue_url":"https://api.github.com/repos/w3c/pubsub/issues/42","id":258220516,"user":{"login":"aaronpk","id":113001,"avatar_url":"https://avatars.githubusercontent.com/u/113001?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronpk","html_url":"https://github.com/aaronpk","followers_url":"https://api.github.com/users/aaronpk/followers","following_url":"https://api.github.com/users/aaronpk/following{/other_user}","gists_url":"https://api.github.com/users/aaronpk/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronpk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronpk/subscriptions","organizations_url":"https://api.github.com/users/aaronpk/orgs","repos_url":"https://api.github.com/users/aaronpk/repos","events_url":"https://api.github.com/users/aaronpk/events{/privacy}","received_events_url":"https://api.github.com/users/aaronpk/received_events","type":"User","site_admin":false},"created_at":"2016-11-03T17:48:09Z","updated_at":"2016-11-03T17:48:09Z","body":"I think these were two separate issues so I broke the other one out: #43"}}
{"actor":{"display_login":"aaronpk"}}