News for hackers. Stuff that matters.
Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @07:41AM (#16966194)
Don't make your users jump through hoops to unsubscribe. That seems like a typical dark pattern to me.
Re:You know how HTTP GET requests are meant to be idempotent? by mysterydip on Tuesday May 01, 2018 @07:51AM (#16966237)
Having a single confirmation step to prevent "oops" clicks doesn't seem like a dark pattern to me.
Re:You know how HTTP GET requests are meant to be idempotent? by icebraining on Tuesday May 01, 2018 @08:00AM (#16966285)
Confirmation steps should only be used if the action can't be easily undone.
Re:You know how HTTP GET requests are meant to be idempotent? by bartread on Tuesday May 01, 2018 @08:49AM (#16966552)
It can't be easily undone if it was "clicked" by an automated process rather than a human being.
Re:You know how HTTP GET requests are meant to be idempotent? by jimktrains2 on Tuesday May 01, 2018 @08:33AM (#16966455)
And when a user receives an email saying they've been unsubscribed because an automated system prefetched the link, they won't be concerned or worried or confused at all. (Especially when this happens _every time_.
Re:You know how HTTP GET requests are meant to be idempotent? by tedunangst on Tuesday May 01, 2018 @03:57PM (#16970877)
And then the automated system clicks the undo link... Problem solved!
Re:You know how HTTP GET requests are meant to be idempotent? by simcop2387 on Wednesday May 02, 2018 @12:47AM (#16974132)
Which fires off a new email thanking them for re-subscribing.

Soon your inbox is full.

Re:You know how HTTP GET requests are meant to be idempotent? by dumbfounder on Tuesday May 01, 2018 @09:15AM (#16966755)
You are right, it doesn't seem like one, but to pissed off users it doesn't matter. If you, for any reason, piss people off to the point where they complain to your registrar or your hosting provider it is bad news. Doesn't matter why. So, the answer is to make it as easy as possible to get removed, which is why people use GET.

I have seen this with spam, and I have seen it with DMCA requests. My hosting provider will issue me a warning for any DMCA request that they will shut me down within 48 hours if I don't comply. Even when it is clearly not a valid request. Even when the content has already been removed. They don't even check, they just say "do it or else". And I pay them thousands per month. Godaddy is the same way, I have had people complain to them, and then they threaten to shut down the domain.

When you have been threatened repeatedly to be shut down for operating normally you don't take any chances. It isn't worth it.

Re:You know how HTTP GET requests are meant to be idempotent? by elmigranto on Tuesday May 01, 2018 @08:03AM (#16966296)
Have a single "I clicked by mistake" button that resubscribes instead.
Re:You know how HTTP GET requests are meant to be idempotent? by jimktrains2 on Tuesday May 01, 2018 @08:32AM (#16966446)
Yes, the automated system prefetching links will always click said button.
Re:You know how HTTP GET requests are meant to be idempotent? by icebraining on Tuesday May 01, 2018 @08:56AM (#16966608)
Not if the button issues a POST request.
Re:You know how HTTP GET requests are meant to be idempotent? by jimktrains2 on Tuesday May 01, 2018 @09:07AM (#16966698)
The button I was responding about was an "undo unsubscribe". A bot won't click that button, but may follow a link.
Re:You know how HTTP GET requests are meant to be idempotent? by icebraining on Tuesday May 01, 2018 @09:11AM (#16966725)
Right, I assumed the button would be linked from a subsequent email confirming the unsubscription. You're right, a button in the unsubscription page doesn't help.
Re:You know how HTTP GET requests are meant to be idempotent? by cjrp on Tuesday May 01, 2018 @08:01AM (#16966289)
The majority of people who clicked on the link did it on purpose, so a better pattern would be to make it unsubscribe immediately with a "didn't meant to unsubscribe? click here to undo" link afterwards.
Re:You know how HTTP GET requests are meant to be idempotent? by jimktrains2 on Tuesday May 01, 2018 @08:30AM (#16966435)
You're making the mistake that this very article is highlighting: it's not just "people" who click links. An overzealous mail client or browser preloading links would force unsubscribe you without your knowledge or ability to undo.

A single step, a button push, to confirm an unsubscription is fine.

Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @08:52AM (#16966578)
> A single step, a button push, to confirm an unsubscription is fine.

No, it really isn't.

Lots of mailing lists operate exactly as the person you replied to mentioned where after unsubscribing you are given a chance to undo that action. That's a far more respectful way to operate.

Re:You know how HTTP GET requests are meant to be idempotent? by Can_Not on Tuesday May 01, 2018 @09:03AM (#16966663)
The user isn't going to see the "Oops! I need to undo" button when their email client helps themself behind the scenes.
Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @09:46AM (#16966965)
Yet somehow lots of places use the click-one-link-to-unsubscribe method and it seems to work. What are they doing differently?

The follow up confirmation screen feels slimy to me like some kind of cable company retention tactic. That's why I called it a dark pattern.

Re:You know how HTTP GET requests are meant to be idempotent? by Can_Not on Tuesday May 01, 2018 @10:14AM (#16967163)
I don't think it's slimy. They could provide a simple, complete unsubscribe button in addition to a list of subtopics to check/uncheck. Maybe I only want to unsubscribe from their blog, or I still want to receive feature update news but not their sales catalog.
Re:You know how HTTP GET requests are meant to be idempotent? by wpietri on Tuesday May 01, 2018 @11:02AM (#16967552)
As a person who ends up clicking a lot of unsubscribe links: I definitely see it as slimy.

I would rather companies just didn't subscribe me, so having to click an unsubscribe link is already a problem. The more confirmation they have, the more I take it as biased and manipulative.

Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @10:26AM (#16967267)
If I click a link to claims to unsubscribe me, then that's exactly what it should do. I have no problem with a page to manage account preferences, but don't label the UI element that leads there as unsubscribe.
Re:You know how HTTP GET requests are meant to be idempotent? by jimktrains2 on Tuesday May 01, 2018 @09:20PM (#16973322)
Do you also not like links called "Contact"?
Re:You know how HTTP GET requests are meant to be idempotent? by unethical_ban on Tuesday May 01, 2018 @10:23AM (#16967244)
None of your responses acknowledge or challenge the very real problem that automated systems and expected behavior of GET reqeusts impact your desired behavior of click-to-unsubscribe.

In the spectrum of "buttholedesign", using proper web standards to make sure an action is being taken deliberately is far lower than "intentionally low-contrast skip buttons" and "call to cancel subscription".

Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @10:51AM (#16967443)
Are we all going to just ignore the fact that lots of mailing list operators seem to be able to present a link to unsubscribe without triggering the bot problem?
Re:You know how HTTP GET requests are meant to be idempotent? by oneeyedpigeon on Tuesday May 01, 2018 @09:32AM (#16966877)
I think having a URL that unsubscribes people just via a GET request is far more likely to cause problems, 'respectful', 'legal', or otherwise.
Re:You know how HTTP GET requests are meant to be idempotent? by mistermann on Tuesday May 01, 2018 @09:04AM (#16966674)
What definition of fine are you using?
Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @09:54AM (#16967016)
I don't want to be presented with a confirmation box every time I change something. Nobody reads them - they just click the button that will make it go away.
Re:You know how HTTP GET requests are meant to be idempotent? by mistermann on Tuesday May 01, 2018 @01:41PM (#16969332)
> I don't want to be presented with a confirmation box every time I change something.

That's much broader scope than what's being discussed here.

> Nobody reads them - they just click the button that will make it go away.

That statement is false. Many people read and care about confirmations.

What you're talking about is very specific personal preferences, not what is generally considered "fine".

Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @04:43PM (#16971373)
It's not all that specific. What I'm describing isn't that far off from what Microsoft found when Windows Vista was presenting a lot of UAC elevation prompts.
Re:You know how HTTP GET requests are meant to be idempotent? by corobo on Tuesday May 01, 2018 @08:19AM (#16966373)
The thread is talking about situations where an automated system would 'click' the link though. The automated system is probably not going to go "oh oops, resubbed"

You could probably automate the POST action though. Equivalent of $('#unsub-button').click() on the unsubscribe page load

Re:You know how HTTP GET requests are meant to be idempotent? by always_good on Tuesday May 01, 2018 @10:52AM (#16967458)
Github also does it for their logout button for good reason. Is that a dark evil pattern to keep you logged in to their ecosystem? Or just something someone would say who doesn't understand it?
Re:You know how HTTP GET requests are meant to be idempotent? by criddell on Tuesday May 01, 2018 @11:47AM (#16968068)
I trust Github. If it were up to me, I'd remove the logout confirmation from Github but having it there doesn't particularly bother me.

When Facebook does it, I do have a problem with it because I don't think their motives are as pure.