Pull to refresh
35
Karma
0.1
Rating

Пользователь

  • Followers 25
  • Following 20

Ставим палки в колеса злоумышленникам

Хах, не все рыцари носят плащи )

Может благодаря вашим действиям им и пришлось свернуть кампанию на этом доменчике, авось кому-то и помогли даже (а мусорные данные от настоящих им будет просто отделить, по тем же IP/User-Agent)

Опасности пользования онлайн-менеджерами паролей

На злобу дня – в одном из менеджеров паролей был плохой рандом

https://donjon.ledger.com/kaspersky-password-manager/

Опасности пользования онлайн-менеджерами паролей

  1. Расширение браузера спасает от банального фишинга – пароль не подставится, если адрес/страница не те, что записаны в менеджере паролей

  2. Браузеры сегодня не поставляют функционал крипто-блокнотов или хранилища файлов

  3. Также они не умеют объединять пароли в группы, например, если хочется сделать отдельный кошелёк для видео-подписок и шарить его с семьёй

  4. В случае дефейса – вообще без разницы, кто источник введённого пароля, т.к. даже при ручном вводе пароль попабает на страницу с чужими скриптами

  5. Нормальный менеджер паролей не предлагает/не подставляет пароли каждый раз, при входе на сайт. Функционал должен отключаться по истечении каких-то первых минут использования

  6. Используя не расширение браузера, а отдельное приложение – люди не только могут не заметить фишинг, но и перемещают свои пароли через буфер обмена на ту же страницу. JS с ним также умеет работать, а ещё другие фоновые приложения...

  7. Браузерные автофиллы работают как-то таки странно и не сильно завязываются на адрес страниц, как следствие можешь засветить пароль от ресурса А на ресурсе Б

  8. Имхо – в большинстве случаев, при осознанном подходе, использовать менеджеры паролей таки будет лучше, чем браузер, который у тебя может синкаться с незапаролленым планшетом, соответственно все пароли утекают, при потере одного устройства. Либо ты шаришь пасс с семьёй путём копирования и теряют девайс они

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

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

Протекающие абстракции и код, оставшийся со времён Windows 98

Ещё одна протёкшая абстракция небось: какая-то генерилка генерит по 80 символов на строку, т.к. "в терминале 80 знакомест", а там это из-за 80 колонок на перфокартах

Небезопасный сервис про безопасность

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

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

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

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

Как решать: не наследоваться от абстрактного класса ControllerBase и использовать аттрибут [ApiController]

Если зачем-то нужен контекст, то через конструктор внедряется IHttpContextAccessor

Интересная проблема всплыла — деконструктор публичный, а дотнет по-дефоту начинает кричать, типа «ай, ты не сказал, какой это http action». Чисто для демо определил и пометил его [NoAction]. но в реальной жизни не хотелось бы такой фигнёй заниматься, конечно. Гляну позже, как красиво это обходить

Заголовок спойлера


Как обезопасить себя и свои данные

Про смартфоны: если на симке нет пинкода, то злоумышленнику достаточно будет её вытащишь из телефона, вставить в другой и начать восстанавливать доступы и получать секретные коды

«Microsoft Coffee»: первоапрельский ответ на Java

Visual J++ не суждено было стать успешной (из-за иска от Sun разработка была заморожена), но позже появились ещё C# и .NET, и их многие тоже называли «ответом Microsoft на Java»
Также появился J#, своеобразный java-lang для .NET en.wikipedia.org/wiki/Visual_J_Sharp

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

Аттрибуты это какое-то тайное знание, о котором нужно помнить (
Хоть я и сам для автофака делал аттрибут [DI], но я же о нём и забывал

«Яндекс» сменил логотип

Удалёнка она меняет, да

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

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

+ они могут быть абстрактными и с виртуальными методами

В отношении метода Clone — искренне надеюсь, что мне не придётся клонировать то, что я внедрял через DI )) Этот метод полезен в рамках DTO, а не управляющих элементов приложения.

С другой стороны, если понадобился свой собственный метод клонирования, то можно сделать метод Clone2'

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

Публичные только на чтение. Принципиально это никакого значения не имеет, кмк


Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

Можно про ограничения подробнее?

А то из того что вижу (линк тут) в результате компиляции record это:
  1. класс реализующий IEquatable<T>
  2. принимает в сгенерированном конструкторе заданные зависимости
  3. умеет «красиво» печатать ToString()
  4. переопределяет операторы [не]равенства
  5. определяет метод деконструкции

В общем — хороший такой класс, для контроллеров или типичных сервисов самое оно, когда нужно избежать конструктора и тела конструктора, имхо

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

С приходом C# 9 появляются records с дефолтными конструкторами
Что позволяет писать меньше кода и не запоминать магических аттрибутов
Контроллеры на их основе выглядят вполне компактно

Пример реализации record-контроллера с внедрением зависимости


На всякий случай код, для попробовать
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
// ReSharper disable All

namespace WebApplicationTestRecords.Controllers
{
    public interface IMyService {
        string[] GetSummaries();
    }

    public class MyService: IMyService {
        public string[] GetSummaries() => new[] {
            "1111", "22222", "2222", "Cool", "Mild",
            "Warm", "Balmy", "333333", "Sweltering", "Scorching"
        };
    }
    
    [ApiController]
    [Route("[controller]")]
    public record WeatherForecastController(IMyService myService)
    {
        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            var summaries = myService.GetSummaries();
            
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index =>
                new WeatherForecast
                {
                    Date = DateTime.Now.AddDays(index),
                    TemperatureC = rng.Next(-20, 55),
                    Summary = summaries[rng.Next(summaries.Length)]
                })
                .ToArray();
        }
    }
}


И не забудь в файле Startup.cs зарегать новый сервис:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
       services.AddTransient<IMyService, MyService>();
            
      services.AddControllers();

PS: разнобой со скобками на скрине только для компактности

Приглашаем на ZeroNights 2021

Какая ирония с https

De-Flash: Как вы справляетесь?

WHAT THE F.....LASH !?
Просто интересно: у вас часть продукта на flash до 21-го года развивался?
Или как был N лет назад написан, так без существенных изменений и продолжал работать?

В даркнете продают базу данных 21 млн пользователей популярных VPN-сервисов

Ну на счёт "разумеется знает" в отношении паролей это перебор, конечно
Однако то, что пароли каким-то чудом были восстановлены (или плейнтекстом где-то лежали) – это позор!
Очередной раз бесплатный сыр оказался испорченным

Information

Rating
2,248-th
Registered
Activity