7 ms·
unintentional my foot the code to implement that functionality didn't come from nowhere
by blibble 8y ago
unintentional my foot
the code to implement that functionality didn't come from nowhere
- brianpgordon 8y agoApparently Facebook is claiming that the functionality came from a separate "import contacts" feature that used to exist. But I agree; the idea that the import logic could have slipped into the login process accidentally is ludicrous. Or at least it indicates an outrageous lack of care on Facebook's part.
- ludston 8y agoIt requires just one developer and a couple of reviewers to make poor choices. Which begs the question, how do you structure your organisation such that a foolish developer that only barely understands the change that they are making can't write code that makes arbitrary queries to particular data sets in unapproved contexts?
- a_imho 8y agoBut you actually say it requires negligence on part of multiple people. I find it very hard to apply Hanlon's razor in this case. Anyway, from my experience people do the stupidest/reckless things despite being told not to, just because there is no fear of backlash. Holding people liable for their actions could be a start, but who wants that? Also, don't hire foolish developers in the first place. Policing around pebkac is hard.
- hopler 8y agoHave you ever worked for an organization? 3 people making mistakes on a project, coupled with bystander effects, is par for the course. Being a million times wealthier isn't a million times smarter. We're still talking about how Boeing accidentally crashed a few jetplanes full of people, which required dozens of people to screw up.
- AnthonyMouse 8y agoStart by keeping the primary copy of the user's data on the user's own device so that the developers never have access to it to begin with. Then, if you ever have to hold a copy of the user's data, make sure it's encrypted by the client and your servers are never in possession of the plaintext. To access the user's data, your developers should have to intentionally crack the user's password. And if they attempt to do that they should be fired. Obviously this is not how Facebook works, but ideally it's how the thing that replaces Facebook will work.
- emerongi 8y agoThere should be a name for this sort of software design. It's not just encrypted/privacy-oriented or whatever. It's a software design with a clear contract on who owns the data: the user. E.g. Google Drive, which claims to take privacy seriously and also encrypts your data. But the data is not encrypted with a secret unknown to the server. How should my family members differentiate between the encryption Google claims it has and client-side encryption? For them it's all the same. Maybe we need some commonly understandable name that a regular user can look at and know that this software is data-agnostic.
- sonnyblarney 8y ago"Start by keeping the primary copy of the user's data on the user's own device" It's an organizational policy, procedural, ethics and legal question - not a technical one. They should have feature reviews before the code reviews. The feature review panel puts bounds on what the code can do.
- brianpgordon 8y agoI don't think you need a board to stop this specific case. It's pretty obvious that what they were doing is unacceptable. The problem must have been a pervasive culture of lack of respect for privacy at Facebook, not a single engineer who somehow just didn't know any better.
- sonnyblarney 8y ago
- Illniyar 8y agoThat's not exactly true, it depends on the architecture in use. For instance if using a Publish/Subscribe model, you could have had a service that listens to your email being connected, and since the only reason to connect your email was to upload contacts, it would upload contacts automatically. Later when login with email was added, the same event was sent but whomever added the event didn't know it would case the upload of contacts. That doesn't mean it wasn't shoddy craftsmanship, bad architecture, bad QA and probably bad communication later on, but it could have been by mistake (at least at first).
- deleted 8y ago[deleted]
- onli 8y agoIf the feature was using the fact that the user supplied the email password, parsing the emails for contacts or logging in with the password and getting the contact list, how on earth could that have been a part of an earlier import contact feature? Did they already ask users for their email password for that? If not this is a feature that needed special code, impossible to be an accident.
- javagram 8y ago> how on earth could that have been a part of an earlier import contact feature? Did they already ask users for their email password for that Yes they did. I remember people complaining about it many years ago. Here’s a page from 2012 describing it I found using google advanced search: https://smallbusiness.chron.com/import-email-facebook-44162.html https://smallbusiness.chron.com/import-email-facebook-44162.... > When you create a Facebook page for your business, you can import your email list of contacts directly into Facebook. From there, you can suggest your Facebook page directly to your customers. Facebook can interact with a range of email providers and only needs your email accounts's username and password to import your contacts. Here’s another from 2011 https://www.techwalla.com/articles/how-to-import-contacts-to-facebook https://www.techwalla.com/articles/how-to-import-contacts-to... > Type your email address and password for the Web-based email or instant-messaging service that you want to import into the dialog boxes and click "Find Friends."
- onli 8y agoThanks! Unbelievable that this existed.
- daemin 8y agoI believe "move fast and break things" is a quote often attributed to Facebook. In this case the automatic importing feature might have been something broken, or something working correctly with an excuse that it was "broken".