Вход с логином и паролем в контакте: «Почему не могу зайти на свою страницу вконтакте, хотя ввожу правильный логин и пароль?» — Яндекс Кью

Содержание

Операторы связи продлили бесплатный доступ к «Госуслугам» и «ВКонтакте»

https://ria.ru/20230522/gosuslugi-1873493268.html

Операторы связи продлили бесплатный доступ к «Госуслугам» и «ВКонтакте»

Операторы связи продлили бесплатный доступ к «Госуслугам» и «ВКонтакте» — РИА Новости, 22.05.2023

Операторы связи продлили бесплатный доступ к «Госуслугам» и «ВКонтакте»

Мобильные операторы продлили до семи дней действие опции «Доступный интернет», которая позволяет иметь доступ к Госуслугам и «ВКонтакте» при нулевом балансе,… РИА Новости, 22.05.2023

2023-05-22T20:00

2023-05-22T20:00

2023-05-22T20:00

россия

общество

/html/head/meta[@name=’og:title’]/@content

/html/head/meta[@name=’og:description’]/@content

https://cdnn21.img.ria.ru/images/07e6/0b/17/1833694487_0:67:3071:1794_1920x0_80_0_0_755ba6c3edcb242b5aac517a734233ce.jpg

МОСКВА, 22 мая — РИА Новости. Мобильные операторы продлили до семи дней действие опции «Доступный интернет», которая позволяет иметь доступ к Госуслугам и «ВКонтакте» при нулевом балансе, сообщается на сайте Минцифры России. «Операторы связи продлили до семи дней действие опции «Доступный интернет», благодаря которой зайти на Госуслуги и ВКонтакте можно при нулевом балансе», — говорится в сообщении. Уточняется, что раньше услуга работала беспрерывно только 24 часа, затем ее необходимо было продлевать.

https://ria.ru/20230519/gosuslugi-1872857293.html

россия

РИА Новости

1

5

4.7

96

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2023

РИА Новости

1

5

4.7

96

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

1

5

4.7

96

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og. xn--p1ai/awards/

1920

1080

true

1920

1440

true

https://cdnn21.img.ria.ru/images/07e6/0b/17/1833694487_170:0:2901:2048_1920x0_80_0_0_1c2359cce597fc0b05b2683050e906bb.jpg

1920

1920

true

РИА Новости

1

5

4.7

96

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

РИА Новости

1

5

4.7

96

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

россия, общество

Россия, Общество

МОСКВА, 22 мая — РИА Новости. Мобильные операторы продлили до семи дней действие опции «Доступный интернет», которая позволяет иметь доступ к Госуслугам и «ВКонтакте» при нулевом балансе, сообщается на сайте Минцифры России.

«Операторы связи продлили до семи дней действие опции «Доступный интернет», благодаря которой зайти на Госуслуги и ВКонтакте можно при нулевом балансе», — говорится в сообщении.

Уточняется, что раньше услуга работала беспрерывно только 24 часа, затем ее необходимо было продлевать.

Минцифры объяснило ограничение скорости развития портала «Госуслуги»

19 мая, 11:39

Рекомендации по проверке подлинности учетных записей и управлению паролями

Примечание редактора . В этом посте представлены обновленные рекомендации, в том числе последние из официальных документов Google «Рекомендации по управлению паролями» как для пользователей, так и для проектировщиков систем.

Управление учетными записями, аутентификация и управление паролями могут быть сложными. Часто управление учетными записями — это темный угол, который не является главным приоритетом для разработчиков или менеджеров по продуктам. Полученный опыт часто не соответствует ожиданиям некоторых ваших пользователей в отношении безопасности данных и взаимодействия с пользователем.

К счастью, Google Cloud предоставляет несколько инструментов, которые помогут вам принимать правильные решения в отношении создания, безопасного обращения и проверки подлинности учетных записей пользователей (в данном контексте — всех, кто идентифицирует себя в вашей системе — клиентов или внутренних пользователей). Независимо от того, отвечаете ли вы за веб-сайт, размещенный в Google Kubernetes Engine, за API на Apigee, за приложение, использующее Firebase, или за другой сервис с аутентифицированными пользователями, в этом посте изложены рекомендации, которым необходимо следовать, чтобы обеспечить безопасный, масштабируемый и удобный система аутентификации аккаунта.

1. Хешируйте эти пароли

Мое самое важное правило для управления учетными записями — безопасно хранить конфиденциальную информацию о пользователях, включая их пароль. Вы должны относиться к этим данным как к священным и обращаться с ними соответствующим образом.

Ни при каких обстоятельствах не храните открытые пароли. Вместо этого ваша служба должна хранить криптографически стойкий хэш пароля, который нельзя отменить, — созданный с помощью Argon2id или Scrypt. Хэш должен быть дополнен значением, уникальным для этих конкретных учетных данных для входа. Не используйте устаревшие технологии хеширования, такие как MD5, SHA1, и ни при каких обстоятельствах не используйте обратимое шифрование и не пытайтесь изобрести собственный алгоритм хеширования. Используйте перец, который не хранится в базе данных, для дополнительной защиты данных в случае взлома. Рассмотрите преимущества повторного хэширования пароля несколько раз.

Разработайте свою систему с расчетом на то, что в конечном итоге она будет скомпрометирована. Спросите себя: «Если бы моя база данных была эксфильтрирована сегодня, была бы угроза безопасности моих пользователей в моем сервисе или других сервисах, которыми они пользуются?» А также «Что мы можем сделать, чтобы уменьшить потенциальный ущерб в случае утечки?»

Еще одно замечание: если вы могли бы создать пароль пользователя в виде открытого текста в любое время, кроме как сразу после того, как он вам его предоставил, то это проблема с вашей реализацией.

Если в вашей системе требуется обнаружение почти повторяющихся паролей, например изменение «Пароля» на «pAssword1», сохраните хэши распространенных вариантов, которые вы хотите запретить, со всеми буквами, нормализованными и преобразованными в нижний регистр. Это можно сделать при создании пароля или при успешном входе в уже существующие учетные записи. Когда пользователь создает новый пароль, сгенерируйте варианты того же типа и сравните хэши с хэшами из предыдущих паролей. Используйте тот же уровень безопасности хеширования, что и для фактического пароля.

2. Разрешить использование сторонних поставщиков удостоверений, если это возможно

Сторонние поставщики удостоверений позволяют вам полагаться на доверенную внешнюю службу для проверки подлинности пользователя. Google, Facebook и Twitter являются широко используемыми провайдерами.

Вы можете внедрить внешних поставщиков удостоверений вместе с существующей внутренней системой аутентификации, используя такую ​​платформу, как Identity Platform. Платформа Identity имеет ряд преимуществ, в том числе более простое администрирование, меньшую поверхность атаки и многоплатформенный SDK. Мы коснемся других преимуществ в этом списке.

3. Разделите понятия идентификации пользователя и учетной записи пользователя

Ваши пользователи не являются адресом электронной почты. Это не номер телефона. Это даже не уникальное имя пользователя. Любой из этих факторов аутентификации должен быть изменяемым без изменения содержимого или личной информации (PII) в учетной записи. Ваши пользователи — это многомерная кульминация их уникальных, персонализированных данных и опыта работы с вашим сервисом, а не сумма их учетных данных. Хорошо спроектированная система управления пользователями имеет низкую связанность и высокую степень согласованности между различными частями профиля пользователя.

Разделение концепций учетной записи пользователя и учетных данных значительно упростит процесс внедрения сторонних поставщиков удостоверений, позволяя пользователям изменять свое имя пользователя и связывать несколько удостоверений с одной учетной записью пользователя. С практической точки зрения может быть полезно иметь абстрактный внутренний глобальный идентификатор для каждого пользователя и связывать его профиль и один или несколько наборов данных аутентификации с помощью этого идентификатора, а не накапливать все это в одной записи.

4. Разрешить связывание нескольких удостоверений с одной учетной записью пользователя

Пользователь, который аутентифицируется в вашей службе, используя свое имя пользователя и пароль на одной неделе, может выбрать вход через Google на следующей неделе, не понимая, что это может создать дублирующую учетную запись. Точно так же у пользователя может быть очень веская причина связать несколько адресов электронной почты с вашим сервисом. Если вы правильно разделили идентификацию пользователя и аутентификацию, связать несколько методов аутентификации с одним пользователем будет несложно.

Серверная часть должна учитывать возможность того, что пользователь частично или полностью пройдет процесс регистрации, прежде чем поймет, что использует новое стороннее удостоверение, не связанное с его существующей учетной записью в вашей системе. Этого проще всего добиться, попросив пользователя предоставить общие идентификационные данные, такие как адрес электронной почты, телефон или имя пользователя. Если эти данные соответствуют существующему пользователю в вашей системе, потребуйте от него также пройти аутентификацию у известного поставщика удостоверений и связать новый идентификатор со своей существующей учетной записью.

5. Не блокируйте длинные и сложные пароли

NIST публикует рекомендации по сложности и надежности паролей. Поскольку вы используете (или очень скоро будете) использовать надежный криптографический хеш для хранения паролей, многие проблемы будут решены для вас. Хеши всегда будут давать вывод фиксированной длины, независимо от длины ввода, поэтому ваши пользователи должны иметь возможность использовать пароли сколь угодно долго. Если вам необходимо ограничить длину пароля, делайте это исходя из ограничений вашей инфраструктуры; часто это вопрос использования памяти (память, используемая для операции входа в систему * потенциальные одновременные входы в систему на машину) или, что более вероятно, — максимальный размер POST, допустимый вашими серверами. Мы говорим о цифрах от сотен КБ до более 1 МБ. Серьезно. Ваше приложение уже должно быть защищено, чтобы предотвратить злоупотребление большими входными данными. Это не создает новых возможностей для злоупотреблений, если вы используете элементы управления для предотвращения заполнения учетных данных и как можно скорее хэшируете ввод, чтобы освободить память.

Ваши хешированные пароли, скорее всего, уже состоят из небольшого набора символов ASCII. Если нет, вы можете легко преобразовать двоичный хэш в Base64. Имея это в виду, вы должны разрешить своим пользователям использовать в своих паролях буквально любые символы, которые они пожелают. Если кому-то нужен пароль, состоящий из клингонских, эмодзи и символов ASCII с пробелами на обоих концах, у вас не должно быть технических причин для отказа. Просто не забудьте выполнить нормализацию Unicode, чтобы обеспечить кросс-платформенную совместимость. Дополнительную информацию о Unicode и поддерживаемых символах в паролях см. в техническом документе для разработчиков систем (PDF).

Любой пользователь, пытающийся использовать экстремальный пароль, вероятно, следует рекомендациям по паролю (PDF), включая использование диспетчера паролей, который позволяет вводить сложные пароли даже на ограниченных клавиатурах мобильных устройств. Если пользователь может ввести строку в первую очередь (т. е. спецификация HTML для ввода пароля запрещает перевод строки и возврат каретки), пароль должен быть приемлемым.

6. Не вводите необоснованных правил для имен пользователей

Для сайта или службы вполне разумно требовать имена пользователей длиннее двух или трех символов, блокировать скрытые символы и не допускать пробелов в начале и конце имени пользователя. Однако некоторые сайты перебарщивают с такими требованиями, как минимальная длина в восемь символов или блокировка любых символов, кроме 7-битных букв и цифр ASCII.

Сайт с жесткими ограничениями на имена пользователей может предлагать разработчикам некоторые короткие пути, но это происходит за счет пользователей, а крайние случаи могут отпугнуть некоторых пользователей.

В некоторых случаях лучше всего назначить имена пользователей. Если это относится к вашей службе, убедитесь, что назначенное имя пользователя удобно для пользователя, поскольку им необходимо вспомнить и сообщить его. Буквенно-цифровые генерируемые идентификаторы должны избегать визуально неоднозначных символов, таких как «Il1O0». Вам также рекомендуется выполнить сканирование по словарю любой случайно сгенерированной строки, чтобы убедиться, что в имени пользователя нет непреднамеренных сообщений. Эти же рекомендации относятся и к автоматически сгенерированным паролям.

7. Подтвердить личность пользователя

Если вы запрашиваете у пользователя контактную информацию, вы должны проверить этот контакт как можно скорее. Отправьте код подтверждения или ссылку на адрес электронной почты или номер телефона. В противном случае пользователи могут сделать опечатку в своей контактной информации, а затем потратить значительное время на использование вашего сервиса только для того, чтобы обнаружить, что нет учетной записи, соответствующей их информации, при следующей попытке входа в систему. Эти учетные записи часто становятся потерянными и не могут быть восстановлены без ручного вмешательства. Что еще хуже, контактная информация может принадлежать кому-то другому, что передает полный контроль над учетной записью третьему лицу.

8. Разрешить пользователям изменять свое имя пользователя

Удивительно часто в устаревших системах или любой платформе, предоставляющей учетные записи электронной почты, пользователям не разрешается изменять свое имя пользователя. Есть очень веские причины не выпускать автоматически имена пользователей для повторного использования, но у постоянных пользователей вашей системы в конечном итоге появятся веские причины использовать другое имя пользователя, и они, вероятно, не захотят создавать новую учетную запись.

Вы можете удовлетворить желание своих пользователей изменить свои имена пользователей, разрешив псевдонимы и позволив пользователям выбирать основной псевдоним. Вы можете применять любые необходимые вам бизнес-правила поверх этой функциональности. Некоторые организации могут ограничивать количество изменений имени пользователя в год или запрещать пользователю отображать или связываться с ним через что-либо, кроме основного имени пользователя. Поставщикам адресов электронной почты рекомендуется никогда не выдавать адреса электронной почты повторно, но они могут использовать псевдоним старого адреса электронной почты для нового. Прогрессивный поставщик адресов электронной почты может даже позволить пользователям использовать собственное доменное имя и иметь любой адрес, который они пожелают.

Если вы работаете с устаревшей архитектурой, может быть очень трудно соблюсти эту передовую практику. Даже у таких компаний, как Google, есть технические препятствия, которые делают это сложнее, чем может показаться. При проектировании новых систем приложите все усилия, чтобы разделить концепцию удостоверения пользователя и учетной записи пользователя и позволить нескольким удостоверениям быть связанными с одной учетной записью пользователя, и это будет гораздо меньшей проблемой. Независимо от того, работаете ли вы над существующим или новым кодом, выберите правильные правила для своей организации, уделяя особое внимание тому, чтобы ваши пользователи могли расти и меняться с течением времени.

9. Позвольте вашим пользователям удалять свои учетные записи

Поразительное количество служб не имеет средств самообслуживания, позволяющих пользователю удалить свою учетную запись и связанную с ней личную информацию. В зависимости от характера вашего сервиса это может включать или не включать общедоступный контент, который они создали, например публикации и загрузки. У пользователя есть ряд веских причин навсегда закрыть учетную запись и удалить всю свою личную информацию. Эти проблемы должны быть сбалансированы с вашим пользовательским интерфейсом, безопасностью и требованиями соответствия. Многие, если не большинство систем, работают под каким-либо нормативным контролем (таким как PCI или GDPR), который предоставляет конкретные рекомендации по хранению данных, по крайней мере, для некоторых пользовательских данных. Распространенным решением, позволяющим избежать проблем с соблюдением нормативных требований и ограничить возможность утечки данных, является предоставление пользователям возможности запланировать автоматическое удаление своей учетной записи в будущем.

В некоторых случаях по закону от вас может потребоваться выполнить запрос пользователя на своевременное удаление его PII. Вы также значительно увеличиваете свою уязвимость в случае утечки данных, когда происходит утечка данных из «закрытых» учетных записей.

10. Примите сознательное решение о продолжительности сеанса

Продолжительность сеанса часто упускается из виду аспектом безопасности и аутентификации. Google прилагает много усилий для того, чтобы пользователи были теми, кем они себя называют, и будет перепроверять их на основе определенных событий или поведения. Пользователи могут предпринять шаги, чтобы еще больше повысить свою безопасность.

У вашей службы может быть веская причина держать сеанс открытым на неопределенный срок для некритических аналитических целей, но должны быть пороговые значения, после которых вы запрашиваете пароль, второй фактор или другую проверку пользователя.

Подумайте, как долго пользователь может быть неактивным перед повторной аутентификацией. Проверяйте личность пользователя во всех активных сеансах, если кто-то выполняет сброс пароля. Запрашивать аутентификацию или второй фактор, если пользователь меняет основные аспекты своего профиля или выполняет конфиденциальное действие. Повторно аутентифицироваться, если местоположение пользователя значительно изменится за короткий промежуток времени. Подумайте, имеет ли смысл запрещать вход в систему более чем с одного устройства или места одновременно.

Когда ваша служба действительно истечет сеанс пользователя или потребует повторной аутентификации, запросите пользователя в режиме реального времени или предоставьте механизм для сохранения любых действий, которые они не сохранили с момента последней аутентификации. Пользователя очень расстраивает, когда он долго заполняет форму, а потом обнаруживает, что все введенные данные потеряны, и ему приходится снова входить в систему.

11.

Используйте двухэтапную аутентификацию

Учитывайте практические последствия кражи учетной записи пользователя при выборе методов двухэтапной аутентификации (также известной как двухфакторная аутентификация, MFA или 2FA). Одноразовые пароли на основе времени (TOTP), коды подтверждения электронной почты или «волшебные ссылки» удобны для потребителя и относительно безопасны. Аутентификация SMS 2FA устарела NIST из-за множества недостатков, но это может быть наиболее безопасный вариант, который ваши пользователи примут для того, что они считают тривиальной услугой.

Предложите самую безопасную аутентификацию 2FA, какую только можете. Аппаратная двухфакторная аутентификация, такая как ключ безопасности Titan, идеально подходит для вашего приложения. Даже если библиотека TOTP недоступна для вашего приложения, проверка электронной почты или двухфакторная аутентификация, предоставляемая сторонними поставщиками удостоверений, — это простой способ повысить вашу безопасность без больших затрат или усилий. Просто помните, что ваши учетные записи пользователей защищены настолько, насколько слабый метод 2FA или восстановления учетной записи.

12. Сделать идентификаторы пользователей нечувствительными к регистру

Вашим пользователям все равно, и они могут даже не помнить точный регистр своего имени пользователя. Имена пользователей должны быть полностью независимы от регистра. Тривиально хранить имена пользователей и адреса электронной почты в нижнем регистре и преобразовывать любой ввод в нижний регистр перед сравнением. Обязательно укажите локаль или примените нормализацию Unicode для любых преобразований.

Смартфоны составляют постоянно растущий процент пользовательских устройств. Большинство из них предлагают автозамену и автоматическое использование заглавных букв в текстовых полях. Предотвращение такого поведения на уровне пользовательского интерфейса может быть нежелательным или совершенно неэффективным, и ваша служба должна быть достаточно надежной, чтобы обрабатывать адрес электронной почты или имя пользователя, которые были непреднамеренно автоматически написаны заглавными буквами.

13. Создайте безопасную систему аутентификации

Если вы используете такой сервис, как Identity Platform, многие вопросы безопасности решаются автоматически. Тем не менее, ваш сервис всегда должен быть правильно спроектирован, чтобы предотвратить злоупотребления. Основные соображения включают реализацию сброса пароля вместо его извлечения, подробное ведение журнала активности учетной записи, ограничение количества попыток входа в систему для предотвращения заполнения учетных данных, блокировку учетных записей после слишком большого количества неудачных попыток входа и требование двухфакторной аутентификации для нераспознанных устройств или учетных записей, которые простаивал длительное время. Существует много других аспектов безопасной системы аутентификации, поэтому см. раздел «Дополнительная литература» ниже для ссылок на дополнительную информацию.

Дополнительная литература

Существует ряд отличных ресурсов, которые помогут вам в процессе разработки, обновления или переноса вашей учетной записи и системы управления аутентификацией. В качестве отправной точки я рекомендую следующее:

  • Технический документ «Наша современная защита паролем для системных разработчиков» (PDF)

  • Соответствующий технический документ «Современная защита паролем для пользователей» (PDF) соблазнение и Управление жизненным циклом

  • OWASP постоянно обновляет свою памятку по хранению паролей аутентификация функции

  • Сайт Google Firebase Authentication содержит обширную библиотеку руководств, справочных материалов и образцов кода

Почему логин и пароль на двух разных страницах?

    К Келли Робинсон 2019-06-27

    Наиболее распространенная причина размещения имени пользователя и пароля на двух разных страницах — поддержка обеих:

    1. единый вход (SSO) (т. е. вход с помощью Google или такой службы, как Okta)
    2. имя пользователя/пароль логин

    Однако этот процесс входа в систему сбивает людей с толку, возможно, поэтому вы читаете это! Веб-сайты обычно представляют поле имени пользователя и пароля в том же представлении, чтобы мы могли войти в систему. Таким образом, вы не одиноки, если вы когда-либо задавались вопросом, почему поле пароля отсутствует или находится на другой странице.

    В этом посте рассматривается безопасность этого дизайнерского решения и представлены варианты разработки форм входа, которые поддерживают несколько путей аутентификации.

    Является ли разделение поля имени пользователя и пароля на разные страницы более безопасным?

    Разделение может сделать атаки с заполнением учетных данных более громоздкими. Это также позволяет платформе выполнять условные проверки безопасности. Например, сайт может проверить, включена ли в учетной записи двухфакторная аутентификация, и, если нет, потребовать CAPTCHA для входа. Двухстраничный дизайн также усложняет злоумышленникам создание фишинговых сайтов с похожими страницами входа в систему, когда используется перенаправление страницы. Однако, вероятно, не стоит делать дополнительный шаг, если у вас также нет варианта использования SSO.

    На эту тему есть отличная дискуссия на dev. to и Security Stack Exchange, если вы хотите узнать больше.

    Варианты обработки как SSO, так и входа по имени пользователя/паролю

    1. Отдельные страницы для имени пользователя и пароля

    Этот дизайн обеспечивает четкий путь для пользователя в любых обстоятельствах. Синхронный поиск электронной почты и отдельный шаг действия («Далее») также могут упростить реализацию кода за кулисами. Разделение также позволяет проводить условные проверки безопасности, упомянутые выше.

    На сегодняшний день это делают такие сайты, как Shopify, Yahoo, Google и Twilio. Минус в том, что люди заметили и пожаловались. Кроме того, этот процесс не всегда хорошо сочетается с функциями автозаполнения менеджеров паролей, но основные из них (LastPass, 1Password) адаптированы.

    2. Поиск одностраничных приложений

    Такие сайты, как Dropbox и Segment, имеют для этого удобный интерфейс. Один из инженеров по безопасности Segment показал мне, как это работает: если вы перейдете на https://app. segment.com/ и наберете [email protected], появится опция для единого входа. Он распознает домен электронной почты и выполняет поиск, чтобы узнать, использует ли эта организация SSO с сегментом. Это похоже на вариант 1, но не включает два отдельных представления. Этот параметр отдает приоритет обработке имени пользователя/пароля и может лучше работать с менеджерами паролей, но требует некоторой обработки Javascript, которая может быть непостоянной.

    3. Необязательное поле пароля

    Другой вариант — сделать поле пароля необязательным. Hackerone, платформа для поиска ошибок, делает это в режиме входа в систему. Это упрощает страницу, не требует поиска домена, но может быть неуклюжим для пользователей платформы SAML.

    Представление полей на одной странице (вариант 2 или 3) также позволяет использовать дополнительные параметры аутентификации, такие как добавление кнопок входа через социальные сети. Такие сайты, как Pinterest и Twitch, предлагают варианты для этого.

    Как разработать идеальную форму входа

    У Брэда Фроста есть несколько замечательных советов, которые стоит обсудить в его посте «Не умничай с формами входа». Вы также можете следить за этим обсуждением на Hacker News, чтобы получить больше идей. Конечно, имена пользователей и пароли — не единственное, что нужно учитывать для экрана входа в систему. Вы можете усилить безопасность процесса аутентификации с помощью двухфакторной аутентификации Twilio или поиска по номеру телефона.

    Ваша компания решила эту проблему по-другому? Или есть другая причина для разделения страниц имени пользователя и входа, о которой я не упомянул? Дайте мне знать в Твиттере @kelleyrobinson или посмотрите обсуждение этого поста на Hacker News.

    Оценить этот пост

    1 2 3 4 5

    Авторы

    • Келли Робинсон

    Мы всегда стремимся улучшить качество нашего блога, и ваши отзывы ценны для нас.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu