Pull to refresh

Comments 82

1580 просмотров и ни одного комментария.
Погоня за 500 евро?
UFO just landed and posted this here
А где гарантия что этот сайт потом удалит собранную информацию :) Имя фамилия вплоть до адреса…
Требования СОРМ, в том числе американские CALEA, требуют хранить какое-то время информацию о пользователях. Поэтому и используют отметку «удалено». :)
Не только. Тут проблема на сколько помню еще во фрагментации данных. Соц сетям легче поставить в данном случае флаг с пометкой «Удалено».
Никакая фрагментация не мешает тупо забить НУЛЯМИ реальные данные, которые нужно удалить, от фото/видео до чатов. Всё останется на месте, только будет пустым. Это дешёвая отмазка, скрывающая настоящий мотив, из-за которого они это не делают.
Часто ли вы используете wipe вместо unlink/delete? Отключаете ли TRIM при использовании SSD?
А как будет выглядеть UPDATE запрос к базе данных в первом и втором случае?
«Note: For legal reasons US and Canadian residents cannot participate.»

«Why can’t users from the US and Canada participate?
Because users from the US and Canada have a contract with Facebook USA. The rest of the world has a contract with Facebook Ireland. The lawsuit only targets Facebook Ireland.»

Итого, чуть ли не целый континент не может участвовать в иске
Пускай сами в суд подают, не маленькие!
А вот интересно так только фейсбук делает?

Вопрос на честность:
К примеру Вы делаете приложение в котором есть возможность оставлять личные сообщения.
Если пользователь удаляет сообщение, оно удаляется из базы или помечается как удалено?
На случай, если аккаунт взломали и удалили всё, разве не разумнее помечать, как удаленное? Чтобы если пользователь потом прибежит в слезах «у меня всё удалили», можно было восстановить удаленное и получить репутационный плюсик. Ну и мне почему-то кажется, что помечать, как удаленное, более эффективно с точки зрения производительности БД.
Что значит «взломали аккаунт»? Украли при помощи трояна пароль с ворованной Windows без обновлений и антивируса? Пользователь решил, что он «никому не нужен» и поэтому пароль у него «123456»? И бэкапов нигде никаких никто не держит? Ну и поделом тогда.
Любой из этих вариантов. Уверять клиента, что это именно он во всем виноват — плохая мысль с точки зрения зарабатывания лояльности клиента, каким бы он ни был, наверное.

И что значит «бэкапов нигде никаких никто не держит»? Разве это обязанность клиента делать бэкапы данных, ответственность за хранение которых взял сервис? А если всё-таки согласиться с тем, что сохранность обеспечивает сервис — чем периодические бэкапы, которые, как я понял, вы имеете в виду, лучше, чем «непрерывные», при которых никакие данные не удаляются и не замещаются?

При использовании периодических бэкапов, все данные, поступившие после последнего сохранения, будут уничтожены. Сравните «Мы восстановили все ваши данные» или «Мы восстановили все ваши данные, кроме тех, которые были добавлены на этой неделе (которые вам как раз и были нужны)» — мне кажется, второй вариант в голове пользователя равноценен «они так ничего и не восстановили — толку мне от переписки годичной давности?».
Судя по минусам, пароль «123456» и ворованная винда очень популярны. Прошу прощения, если кого-то задел за живое.

Я сейчас наверное скажу ещё более крамольную мысль: лояльность, скажем так, не очень умных клиентов приносит больше проблем, чем денег. Чем быстрее они уйдут, тем меньше времени саппорт будет в итоге тратить на убыточную возню и тем больше времени останется на решение действительно серьёзных проблем.

Но предположим, что сервис действительно взял на себя обязательства следить за сохранностью данных пользователя. Предположим даже, что я действительно имел в виду периодические бэкапы, хотя с его бы вы это взяли? В общем, вы целиком правы, а я совсем нет. Вопрос: как удалить данные? Я так понимаю, что всё упирается в необходимость механизма защиты от дурака. Не сочтите за труд, опишите действующий механизм удаления данных с защитой от дурака. Я правда хочу знать, потому что как мне кажется, такого механизма не существует — либо всё удаляется, либо ничего не удаляется. И я как раз из тех, кто предпочитает иметь возможность выстрелить себе в ногу и отвечать за последствия своих действий.
Давайте попробуем с другой стороны — зачем что-то действительно удалять, если вам, как пользователю, абсолютно всё равно, что произошло на самом деле? Выглядит для вас всё так, как если бы данные были удалены, как и для всех обычных пользователей — ваших друзей, врагов или мимопрохожих. Я понимаю, если бы удаленные сообщения были доступны первому желающему — это да, повод для баттхерта, но видят их только вы (и по запросу), правительство и сотрудники. И то, насчет сотрудников еще можно поспорить в том плане, что, в отличие от плохих людей, ломающих аккаунты пачками с целью перепродажи спама и лайков, у сотрудников подобной мотивации нет.

Т.е. да, могут смотреть, конечно, более того — желательно исходить из предпосылки, что смотрят, но если же вы так беспокоитесь о сливе собственных данных в КГБФСБ, зачем, в первую очередь, вы доверяете данные сервису, которому не доверяете? Степень уничтоженности данных роли ведь не играет — любые удалённые данные когда-то таковыми не были.
Давайте попробуем с третьей стороны: зачем писать состав продуктов на этикетке, если вам, как потребителю, абсолютно всё равно, что же там на самом деле? На вкус-то разницы нет.

Дело в том, что подобные данные — это часть моей жизни (не в моём конкретно случае: зная с кем имею дело я написал правдоподобный творческий вымысел в нужные поля). Кстати, «первый желающий» меня как раз не так сильно волнует, как правительства и заинтересованные организации. Вопрос «зачем доверять» можно обсуждать бесконечно. Лично я так (больше) не делаю уже давно, завязал ещё до социальной мании. Но раз уж у нас мир цифровой, то почему бы не дать человеку возможность исправить ошибку, совершённую в молодости?
На месте пользователей я бы давил на то обстоятельство, что скрытые данные могут быть похищены и использованы злоумышленниками. Спецслужбы тут на самом деле второстепенны, есть куда более неприятные личности, доступ которых может быть нежелательным.
UFO just landed and posted this here
У самого внимательного и осторожного есть в разных местах бэкапы, которые восстанавливаются. Я в любой момент времени могу оценить примерные потери от внезапной смерти произвольного количества дисков, оборудования, увода паролей и ключей для SSH. Например, если моя квартира сгорит дотла, то я потеряю в худшем случае 1 день работы. Это в пределе. Но на случай если обстоятельства сложатся так, что одновременно что-то необратимо плохое случится и с моей квартирой, и с офисом, и с двумя дата-центрами в нашем городе, и с ещё одним на другом континенте, у меня есть неплохой поп-корн. Готовится за 5 минут в микроволновке или за сравнимое время на открытом огне в кастрюле. Рекомендую.
Да все уже поняли, что вы молодец.
Да мне не нужно, чтобы кто-то понял, что я молодец. Почесать своё эго я могу себе сам. Я хочу, чтобы все вокруг были молодец, да так, чтобы у меня челюсти от зависти сводило.
UFO just landed and posted this here
Если не вдаваться в подробности, то rdiff-backup / в сторону ближайшего сервера два раза в сутки. Серверы между собой обмениваются недостающими частями при помощи rsync.
интересно, а как бэкапятся и восстанавливаются Вами такие вещи как документы? например, паспорт, водительское, доки на право собственности на кваритру, автомобиль, земельный участок и т.п.
мне вправду интересно.
Кстати, да… вопрос на засыпку. Как можно сделать бекап всех своих данных в соцсети? Доступных инструментов сделать это 0 целых 0 десятых. разве что пройтись и вручную сохранить в оффлайне все свои странички. А потом скурпулёзно сидеть и восстанавливать в случае чего.
Я не знаю. Не приходилось настолько всерьёз пользоваться подобными ресурсами. Но если теоретизировать, то я бы предположил, что данные в соцсети откуда-то попали, так почему бы их там же, в источнике, и не бэкапить? А беглый поиск по интернету показал, что с Фейсбука и с Гугла можно скачать свои данные, уже аккуратно упакованные. Даже если для этого нет никакого API, наколхозить пару элементарных скриптов для автоматизации процесса дело двух-трёх часов от силы.
А закачать обратно, чтобы развернулось в том же виде как и было?
Попадают данные в соцсеть от самого человека, который туда их вводит. Проблематично забэкапить все свои мысли.
Вопрос спорный. Вы мои сообщения восстановили, круто.

А потом, через пару минут, прийдет вопрос — а откуда у вас это, ведь я же удалил. Удалил. Ключевое слово. Я внутри своего аккаунта, никто и так не имеет туда доступа.

И я, зная это, все равно их удалил.

Значит я не хотел их оставлять прежде всего где-то там, на сервере, верно? Но, получается, что «удалил» это фикция. Я понимаю еще хранить бекап комментов (публичных) к чему-либо, на случай разбирательств там или чего-то еще. Но личные сообщения…
Ну так это ж не вы их удалили, а хакер. И вы пишете в саппорт — «взломали страницу, всё удалено — переписка, твиты, посты, фотки, всё снесли :(», и саппорт отвечает — «нет, что вы. Мы не будем восстанавливать, ведь откуда мы знали, что это хакер удалил, а не вы? Мы всё снесли, помочь ничем не можем, пишите письма очаковскому раввину». Зачем так делать, когда всё равно возможность восстановить есть?
Хакер это исключение из правил. Кнопка удалить сделана не только для хакеров, верно? То есть ради исключения из правил мы убираем возможность удаления. А может лучше все-таки тогда думать над улучшением безопасности? Как сервера, так и пользователя. Возможно для кого-то это будет шоком и грусть-печалью, но кнопка удалить должна удалять, а все остальные моменты — на ответственности серверной защиты и пользовательского образования. Тем более то, что не нужно палить пароль, делать его трудным и прочее прочее прочее — вещь говореная всеми и везде.
вещь говореная всеми и везде
Если бы все соблюдали правила пожарной безопасности… но мы живем в реальном мире, и в реальном мире реальные пользователи часто используют `qwerty` в качестве пароля. Если заставлять делать очень длинные пароли, безопасность всё равно не будет высокой, пока сам пользователь не осознает необходимость этого.

Ну и как бы продукты делаются, чтобы зарабатывать на них деньги, а не чтобы учить пользователя быть умным.
UFO just landed and posted this here
Удаление в вашем понимании — это действие деструктивное и необратимое. Вы ожидаете при нажать «Удалить» произойдет «DELETE» в базе данных, но это не всегда так.

Основные причины этого поведения:
1. Безопасность — Вы блокируете операцию DELETE на вашем сервере базы данных. Хакер не может выполнить деструкционные действия на всей БД.
2. Информационные системы растут и усложняются. При удалении определенного объекта — например комментария — возможны null в других объектах — где программист этого не ожидал — и недовольный клиент получит 500 ошибку. (На примере XPO). Также у вас не будет исключений сервера БД.
3. Версионность объектов
4. Фрагментация данных

А потом, через пару минут, прийдет вопрос — а откуда у вас это, ведь я же удалил.

Этого не произойдет. Обычно есть еще CreatedTime и DeletedTime. Так вот восстановят только от последней DeleteTime. И вы свои удаленные записи не увидите.
В одном из сервисов вместо кнопки «Удалить» размещена кнопка «Архивировать», которая отправляет контент во что-то вроде корзины, из которой его можно восстановить, а собственно кнопка «Удалить» спрятана в не самом очевидном подменю. Итого: в обычном режиме ты убираешь материалы из зоны видимости, но всё еще можешь восстановить в случае необходимости, однако если тебе надо именно удалить их — пожалуйста, приложи немножко усилий и удали. Полагаю, во втором случае при обращении в саппорт со словами «ой, а я вот удалил и хочу вернуть» тебе откажут в помощи.
оставляю возможность вернуть удаляемый «объект» в течении 5 минут, потом удаляем из базы окончательно.
Такой вопрос актуален для тех, кто имеет проект по объёму данных схожий с facebook. Потому что при таких объёмах бывает банально долго удалять из базы навсегда, проще пометить «удалённым».
В каком смысле — «банально долго»? Физически долго? Почему?
Фрагментация Базы Данных и т.д.
Или с чем они там ещё борются :)
Перестройка индексов, фрагментация и т.д. в зависимости от стораджа. Но важнее — нет гарантии что данные не нужно будет восстановить. Да и само удаление не гарантирует, что данные исчезнут, так как обычно убирается лишь адрес, а сами данные валяются пока на их место не запишут что-то другое.
Просто удаление — отдельная и очень сложная задача даже на сравнительно небольших проектах. В Фейсбуке удаление — задача совсем нетривиальная. Такое делают только когда заставляют.
Это, извините, bullshit. Да, удаление может быть проблемой. А вот замена на содержимое /dev/zero функционально идентична и не создает проблемы фрагментации.
Справедливо для маленьких объемов данных, хранящихся последовательно. Для базы данных с объемами фейсбука это, скорее всего, не так:

1. база данных может иметь очень большую связность. Например, объект личного сообщения на самом деле хранится не как одна строка в БД, а как множество объектов, связанных через какую-то промежуточную таблицу — отдельная таблица для списка получателей, отдельная таблица для списка серверов, на которых дублируется блоб с текстом сообщения, отдельная таблица для хранения ревизий измененного сообщения… Если удалить только промежуточную таблицу, которая это всё связывает, как удалять «бесхозные» записи в других таблицах? Mark & sweep? Каскадно делать кучу связанных запросов с дереференсами и удалять каждую запись?

2. а что, если связность достигает таких уровней, при которых цитата чьей-нибудь реплики в личном сообщении — это не копия, а ссылка? В таком случае, «занулив» приватные данные, все упоминания этих данных тоже будут уничтожены, а это уже не совсем корректно в том плане, что личные данные, которые были разглашены даже в персональном порядке, уже не совсем личные, и частично принадлежат и тому человеку, который их «репостнул». Я не юрист и не оформлю это красивым языком, но суть в том, что если мне сказали что-то, то это моё право передать это «что-то» кому-то другому по моему усмотрению, и никто не имеет права без моего разрешения удалять-изменять мое сообщение. Копировать же все упоминания накладно, плюс это всё равно не решает проблему «хранения удаленных личных данных», еще и порождает проблемы с висящими указателями.
По той же причине, собственно, файловые системы отмечают файлы, как удаленные, вместо того, чтобы забивать их нулями — просто потому, что во втором случае производительность будет в районе плинтуса из-за необходимости перезаписать кучу секторов, которые находятся в физически несоединенных точках диска.
Такое удаление по накладности будет максимум аналогично созданию. Все упомянутые проблемы решаемы и не являются техническими, скорее организационными.
Вот только накладные расходы создания являются неизбежными — нельзя, увы, поставить птичку «запись создана» и не заполнять больше ничего, запись нужно создать по-настоящему. А вот «удалить» можно и путем простановки флага — разницы для пользователя при этом нет никакой.
Как видно по регулярно всплывающей теме — разница есть.
Эта тема не всплыла бы, если бы фейсбук просто не включил данные с флагом deleted в выгрузку для австрийского студента юрфака. Я лично не вижу ничего предосудительного в этом естественном архитектурном решении.
Он не имел права не включить их. И точно так же он не имеет права не включить их по запросу государства. А еще к ним кто-то имеет доступ внутри компании. А еще к ним может получить доступ взломщик.
Это можно было бы делать опцией. По умолчанию — «помечено удалённым», но если пользователь однозначно хочет этого и понимает риски — можно бы и разрешить удалять насовсем.
А что разве тяжело планировщику дать задание удалять из базы, помеченные удаленными записи через Х времени?
За что заминусовали человека?
Мне кстати также интересно было бы знать ответ на вопрос об использовании планировщика. Буду благодарен если кто-то разбирающийся в таких сложных системах как база данных facebook сможет просветить.
Типичный мир людей. Сначала идем на цеетрализованный ресурс, вали туда всю персональную информацию. Далее недольны, что у нмх куча этой инфы, которая доступна тому же государству и еще неизвестно кому. Этим же государством или другим регулятором требуем удалить инфу, да еще и денег заплатить. Насчет удаления — требования разумно, но компенсации и прочее за то, что человек приперся не в какую-нибудь диаспору или другой распределенный сервис (или сам не остроил), а в фейсбук — это как-то нагло.
Хотел написать что-то подобное. Но раз уже написано, то вот противоположная точка зрения:
Я сам не пользуюсь соцсетями кроме linkedin и g+, да и то только как способ со мной связаться. По нуждам работы заводил акк в facebook для создания странички своего продукта. Раньше даже не заходил туда, не то чтобы пользоваться.
При регистрации вводил настоящие только имя и фамилию (не шибко редкие), больше ничего личного. После регистрации сайт предложил мне добавить в друзья множество моих однокурсников и просто знакомых. Возможности получить такую информацию на самом сайте не было никакой. Вот тут и задумываешься о безопасности персональной информации.
Провязка по почтовому адресу, как он фигурировал в адресных книгах знакомых/однокурсников и т. п.? Фейсбук и подобные очень любят получать доступ к адресной книге пользователя.
Возможно. Linkedin уж очень хочет заполучить мою адресную книгу, но пока борюсь.
Защита персональных данных — это конечно модно. И посудиться с Фейсбуком — отличное развлечение для студента юрфака. Но я не понял ни из статьи ни с сайта, в чем конкретно суть претензий.
Парень сначала долго и методично выкладывал на Фейсбук свои данные, а потом удивляется, что Фейсбука эти данные помнит?
Или он не доволен только тем, что удаленные данные не удалили?
Или тем, что компания передает данные властям в соответствии с законами той страны, в которой находится?
Cкорее, отличный пиар и неплохая карьера в ближайшем будущем.
Или он не доволен только тем, что удаленные данные не удалили?

Это

Может это и пиар как говорят, но студента тоже надо понять: он нажал кнопку удалить сообщение — он желает удалить его с фейсбука. С фейсбука, именно с него, а не со своей странички просмотра этих сообщений.
Во всех более-менее серъезных высоконагруженных проектах вы не увидите моментального удаления данных. Только флаг об удалении и может быть через какое-то время, месяц, полгода, год, пройдет специальная программа и все эти данные удалит. Моментальное удаление приведёт к фрагментации и снижению производительности. Например вконтакте фотографии не удаляет минимум неделю, по собственным наблюдениям, ходят слухи о том что они вообще этого не делают, что тоже логично, но сам не проверял. Файлик со списков урлов удалённых фото куда-то девается, я повторять эксперимент было просто лень.
Ну, фоточки можно, как минимум, переносить в скрытую для HTTP папочку. А потом уже чистить её изредка.
Боюсь что в проектах такого масштаба не все так просто и фоточки не лежат тупо на диске в ожидании, когда веб сервер прочитает их из определённого каталога.
Может быть и не всё так просто. А с другой стороны, зачем усложнять? Тупо файлики, тупо считываемые веб-сервером, что проще, быстрее и масштабируемее? ФС подобрать только. Хотя не знаю…
Принцип KISS не всегда можно применить )
Приведу пример, как раз таки с файлами и ФС. Была у меня как то интересная задачка — записать на пару десятков SD карт памяти по 50 тыс. мелкий файлов. Сначала попробовал скопировать «в лоб», но быстро понял, что на этой уйдет очень много времени. В итоге пришлось сделать образ, скопировать на него нужные файлы и потом уже этот образ накатывать на SD карты. И это работало в несколько десятков раз быстрее, чем если тупо копировать файлы.

Примерно так же, кстати и поступают. Делают большой блоб-файл, новые фотографии тупо записываются в конец файла, а базу данных смещение. В итоге, получается быстрее.
Но такой подход не меняет сути. Всё равно есть какой-то указатель на начало фотографии внутри файла. Удалять фотографию из файла — долго, нудно, фрагментация и тому подобное. А грохнуть указатель, чтобы фотография перестала быть доступной извне — гораздо проще.
Совершенно верно, но дело в том что как раз таки этот указатель и не грохают ) ВК, например, грозают «у этого пользователя есть вооот такие фотографии», но не грохают «по этой ссылке есть вот такая фотография».
Ну и редиски.
А как, кстати, коррелирует заповедь «делайте бэкапы» и право пользователей быть удалёнными? Они что-то удалили, а в бэкапах ещё месяц, как минимум всё лежит.
«Note: For legal reasons US and Canadian residents cannot participate.»
сорри, раньше написали, не видел
Как будто ничего удивительного в наличии списка удалённых сообщений и удалённых друзей. Не знаю, как в Фейсбуке, а в vk удаление сообщений одним собеседником не удаляет их из архива второго собеседника; а удалённый друг отличается от простого не-друга тем, что от него, кажется, не приходит оповещение, если он попытается зафрендиться снова. Поэтому «ненастоящее» удаление — «не бага, а фича».
Чем бы дитя ни тешилось, лишь бы на юрфак не поступало.
Не для того социальные сети делаются, чтобы потом накопленную информацию удалять
Предлагаю пойти ещё дальше и подать коллективный иск на производителей большинства ОС и на все облачные сервисы, ведь по сути при удалении данных, они физически не удаляются и их можно восстановить.
Венский областной суд? Венская область? 8-0
Не пользуюсь и не буду пользоваться facebook,
Причины просты:
1) убогий дизайн и вообще, не под русского человека заточен.
2) там меньше знакомых и коллег чем на ру пространстве.

На тему поста: а они как думали, что где то физически удаляются данные?
На моей памяти, за 10 лет разработки проектов, я не видел что бы где то физически что то удалялось.
Или архивируется в отдельную БД или просто ставится status = false (0, delete и т.д.)

Сейчас разрабатываю сайт, в профиле пользователя есть пункт — Удалять все данные физически при удалении аккаунта. (Ваши данные будет невозможно восстановить)
и эта галочка… делает архив данных аккаунта в ФСБ.
А там есть еще одна галочка "[x] мне не нравится, что мои данные будут отправлены в ФСБ".
И, если эта галочка стоит, данные в архиве ФСБ помечаются как высокоприоритетные.
Sign up to leave a comment.

Articles