> а чем веб принципиально отличается от других решений?
Каких именно решений, о каком уровне реализации мы говорим? На данный момент веб превратился в неконтролируемую помойку которая включает в себя многочисленные реализации и решения которые на первый взгляд и изначально должны служить верой и правдой юзерам. Следует помнить что веб в совокупности представляется нам браузером, давайте не забывать про серверную часть и сам протокол который отвечает за общение. На этих уровнях происходит не меньше беспорядка, взять хотя бы пример с прошлой недели: возможность произвести ddos на операционную систему при реализации HTTP/2 в IIS. Заметьте, не на само приложение которое может присутствовать, заниматься лишь вывод информации и является безопасным, а на уровень ниже за счет чего это может затронуть все присутствующие приложения в системе. В целом все то количество и наличие стандартов, технологий которые на данный момент присутствуют в вебе и желание использовать их в виде свистелок для привлечения пользователей могут приводит к возникновению недостатков на стороне приложений. Тут наверно стоит привести Heartbleed уязвимость, как наиболее громкий инцидент за последние годы, которая затронула очень многие хосты в вебе.
>Это просто GUI.
К сожалению, это далеко от сегодняшних реалий. Но я понимаю что в данном случае вы скорее всего говорите про конечный результат процесса рендеринга того или иного браузера. Графический движок браузера является основной и одной из составляющих частей отвечающий лишь за вывод информации для нас в презентабельном виде. Сегодняшние браузеры включают в себя гораздо большей возможностей и функциональности чем кажется на первый взгляд. Чего только стоит наличие "собственной" файловой системы в браузере и наличие service workers (извините, не знаю как на ру) за счет чего мне как атакующему будет всеравно если вы закроете вкладку или браузер полностью. Сегодняшний ваш браузер это не просто GUI, а наличие множества отдельных компонентов не только для разработчиков но и для атакующего. Наличие недостатка только лишь в рендер механизме сделает корректное и написанное по стандарту приложение уязвимым для атаки.
>Стандарты и принципы прекрасно описаны.
Стандарты чего именно? Мы можем описать что угодно, но с точки зрения безопасности это никак не повлияет в дальнейшем на возможные ошибки в самой технической реализации. HTTP протокол который использует ваш браузер для общения с приложениями по умолчанию уязвим к определенным атакам по сегодняшний день. Множество фреймворков по умолчанию уязвимы к тем или иным атакам без их корректной имплементации. Браузеры до сих пор не могут договорится между собой как в обычных условиях рендерить обычные HTML элементы на стороне пользователя. Кроме того, до сих пор нет единогласной поддержки элементарных заголовков в самом протоколе, несмотря на все стандартны и связанные с этим проблемы.
>Не надо сваливать кривые руки и безответственность разработчиков на проблемы веба.
см. выше, так же добавьте ко всему этому безответственность и некомпетентность разработчиков в той или иной области/технологии (хотя бы просто потому что невозможно физически обладать знаниями во всех областях). Опять же, применение библиотеки в которой вчера не было уязвимости не делает разработчика безответственным. Веб в целом является местом где сосредоточены наиболее прогрессирующие инструменты для реализации тех или иных пользовательский возможностей между которыми могут так же происходить противоречия в стандартизации за счет чего разработчикам и без того не сладко.
>Ежедневно в вебе совершаются операции на миллиарды.
В этом нет ничего плохо, "недостатки" так же ежедневно исправляются. Но я не вижу как это утверждение коррелируется с безопасностью.
>Бэк не должен доверять никаким данным из фронта.
Что значит "не должен доверять"? Как, за счет чего, на каком этапе должен реализовываться данный функционал?
В целом приложение должно корректно обрабатывать данные, ему не известно ни о каких границах доверия. Скорее всего тут вы говорите о недостатках которые могут вызвать структ