Live data from Hacker News

Instead of deleting account, NYT appends ‘1000’ to username and email address

twitter.com

61–70 of 167 posts

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#61
post #20

Earlier quoted context omitted.

Chances of com1000 being delegated is low.

Why would it need to be designed? Email delivery depends on DNS, which is unencrypted and spoofable. Spoofing emails is also doable.

Email is an inherently insecure medium. If an attacker can compromise the DNS responses for your mail server, you're hosed.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#62
XBox live used to have a similar thing, may have changed since GDPR. When I asked for my account to be deleted they sent me instructions that said basically unfriend everyone i know and change my name to deleted - this was after several days of them looking into it for me :/

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#63
post #28

Earlier quoted context omitted.

Why not just anonymize the data instead? Not using foreign key constraint just for the sake of GDPR sounds weird.

That and why not allow null for the foreign key constraint and set it to nullify upon deletion? Or indeed, anonymise data.

I have used that pattern in my apps and found it works well. But then I've watched video from respected DB experts, that I learn a great deal from, where they practically beg you to stop using nullable columns.

So I'm torn, because I think there may just be a major problem I've not yet grown my apps big enough to suffer. Anyone have thoughts either way?

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#64
Doing real deletes on user accounts is a surprisingly challenging problem and I'd be willing to bet very few companies do real deletes where all of your data is wiped permanently from the company. For legal and financial reasons, companies often need to keep track of historical user activity. If a company states in their investor quarterly report that they had 1M active users, they better be able to prove it in an audit.

And in a naive relational database implementation, deleting a user would cascade and delete activity associated with that user.

The easiest way around this is to do soft deletes where the data stays in the db, but the flag deactivates the user's account. Looks like the NYT just did a poor implementation of a soft-delete.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#65
post #64

Doing real deletes on user accounts is a surprisingly challenging problem and I'd be willing to bet very few companies do real deletes where all of your data is wiped permanently from the company. For legal and financial reasons, companies often need to keep track of historical user activity. If a company states in their investor quarterly report that they had 1M active users, they better be able to prove it in an au…

> poor implementation

Well that's an understatement. NYT has the tech resources to do this a million better ways.

> investor quarterly report [...] active users

Speaking of "active user" counts, it's convenient that "jsmith1000" is plausibly an active user, whereas "jsmith(state:deleted)" is not. Hm.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#66

I’d bet (a small amount of) money they have no ability to delete accounts at all, and it goes all the way down to foreign key constraints introduced by a well-meaning but inexperienced developer that unnecessarily couple the accounts table to many other records.

Regardless of the constraint on the key, the design fact remains that deleting a user record that might, for example, have associated transaction data (like subscription payments) is a little complex. You don't want to cascade that deletion to a record of credit card charges, but you also need to make sure that all queries respect that the user record might now be deleted - ie make it an outer-join. It's far more rob…

Do active/inactive fields comply with data privacy laws like those in California and the EU?

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#67

Note that "anonymization" has been legally found (DSB-D123.270/0009) to be acceptable to meet GDPR "erasure" requirements. However, this requires irrevocable overwriting of PII rather than just slapping 1000 on the end ;-) If they'd changed the username and email address to some random string, however, they would most likely be compliant.

Wouldn't they also need to replace saved billing details, like address and full name, to anonymized garbage?

In Germany not; these are required by law (§147 AO, https://www.gesetze-im-internet.de/ao_1977/__147.html) to be kept for ten years.

The legal base for allowing this national rule in European law is Art. 6, 1c GDPR.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#68

I’d bet (a small amount of) money they have no ability to delete accounts at all, and it goes all the way down to foreign key constraints introduced by a well-meaning but inexperienced developer that unnecessarily couple the accounts table to many other records.

In that case it seems simpler to introduce an IsDeleted flag than to have a convention that 1000 goes on the end of the name.

I'm learning about database design, and I'm learning that this might not be that easy if the relationships between users and other data on the site are ill-defined. There may be multiple tables in their design that will require knowledge of that flag, and it might legitimately be way easier to just add junk to the end of the user account than it is to introduce a new flag.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#69
post #64

Doing real deletes on user accounts is a surprisingly challenging problem and I'd be willing to bet very few companies do real deletes where all of your data is wiped permanently from the company. For legal and financial reasons, companies often need to keep track of historical user activity. If a company states in their investor quarterly report that they had 1M active users, they better be able to prove it in an au…

Pretty sure that breaches GDPR and maybe CCPA. Maybe they can get away with anonomyzing the data but that doesn't sound like what is being done.

Re: Instead of deleting account, NYT appends ‘1000’ to username and email address

#70
post #64

Doing real deletes on user accounts is a surprisingly challenging problem and I'd be willing to bet very few companies do real deletes where all of your data is wiped permanently from the company. For legal and financial reasons, companies often need to keep track of historical user activity. If a company states in their investor quarterly report that they had 1M active users, they better be able to prove it in an au…

I used to work where (not a service for the general public) there was an "is deleted" flag for everything, but every now and then a client would insist that data be really deleted, and depending on who it was and how they asked, we might go and do it, which was a huge hassle and would cause no end of problems down the line.

On the other hand, "is deleted" flags end up causing issues when you forget to put "where not is_deleted" in your queries.

Lately I've faced kind of an inverse situation - I have a system that I can't control where things are permanently deleted once in a while for multiple reasons (rogue users, aging out of old versions) and so as I accumulate information in a little data warehouse for reporting, I decided to implement an "is deleted" flag there. Eventually though, deleting from the source was turned off because it's really not necessary.

Post reply on HN