-
Notifications
You must be signed in to change notification settings - Fork 36
Spam avoidance mechanism #68
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
Comments
I think a URL parameter would be the best of both worlds? I wouldn't expect it to make URL routing more complicated on most servers, and it wouldn't require a special case in the spec. |
I think you're right about a URL parameter. We should put some text into the spec with advice on how to handle this. I think the best we can do is to recommend constructing custom URLs for each pair of origin and client IP address. (Custom URL constructed by adding a nonce somewhere: subdomain, URL path, URL parameter, whatever is easiest for you to implement.) That would still allow a spammer to upload fake reports, but they'd have to make a request for each origin that they want to spam, from the host that will generate and send the spam reports. They wouldn't be able to blast a huge pile of spam uploads for different origins and clients in one go. @yoavweiss, you had raised this on the WG call. Do you have any other thoughts or concerns? Anything I'm missing? |
I wrote this when we released boomerang in 2010: https://soasta.github.io/boomerang/doc/howtos/howto-7.html |
It lists types of beacon abuse and their solutions based on what worked for us. |
I agree that a URL parameter based nonce would cover the use-case. |
Sounds reasonable. If we go ahead with this, I'd suggest adding this as an appendix / non-normative section at the end of the spec — e.g. "deployment considerations" or some such. |
In today's WebPerf WG call, @yoavweiss asked about how we can tell apart valid report uploads from fake ones. We should figure out how to prevent a spam problem like you get with (for instance) Google Analytics: right now, anyone can get the report upload instructions for a particular origin (just GET any page on that domain and look at the
Report-To
response header), and can then blast away uploading any number of bogus reports about that origin.You could solve that right now by handing out custom upload URLs for different clients; the server receiving reports would verify that the URL that the report came in on matches what would've been handed out to the client uploading the report. We also briefly discussed adding this more directly as part of the spec proper — each endpoint group in a
Report-To
header, for instance, could include anonce
field, whose value is different for each client, and each report upload would include that nonce value as-is, so that the server could verify it. That would give you the same capability without having to add complexity to your DNS or URL routing configurations.The text was updated successfully, but these errors were encountered: