https://habrahabr.ru/post/338880/Цитата:
Что-то происходит. Люди недовольны. Призрак гражданских беспорядков преследует наши программистские сообщества.
Впервые значимое число веб-разработчиков открыто ставят под сомнение веб-платформу. Вот характерная статья и обсуждение. Вот другая статья. И ещё одна. Я бы мог перечислить и больше, но если вы достаточно интересуетесь программированием, чтобы читать эту статью, то наверняка уже читали в этом году хотя бы одну напыщенную декламацию о современном состоянии веб-разработки. Эта статья не из таких. Я не могу соревноваться в издевательствах над существующим статусом-кво с людьми, которым приходится заниматься веб-разработкой каждый день. Это другая статья.
...
Почему веб должен умереть
Веб-приложения. На что они похожи, а? Я могу перечислить кучу их проблем, но давайте остановимся на двух.
Веб-разработка медленно повторяет 1990-е годы.
Веб-приложения невозможно защитить.
...
К сожалению, веб не вывел нас на благословенную землю безопасных приложений. Хотя веб-приложения в каком-то роде изолированы от материнской ОС, и это хорошо, но сами приложения вряд ли более надёжны, чем код Windows от 2001 года. Вместо того, чтобы навсегда избавиться от доставшихся по наследству проблем, веб просто заменил один тип переполнения буфера другим. В десктопных приложениях эксплуатировались уязвимости типа двойного освобождения одной и той же памяти (double free), уязвимости целостности стека (stack smash), использования памяти после освобождения (use after free) и прочие. Веб-приложения исправили их, но представили собственные такие же ошибки: инъекции SQL, XSS, XSRF, инъекции заголовков, смешение типов MIME и так далее.
Всё это ведёт к простому тезису:
Невозможно написать безопасное веб-приложение.
Не будем педантами. Я не говорю буквально обо всех веб-приложениях. Да, можно написать безопасный HTML Hello World, флаг в руки.
Я говорю о реальных веб-приложениях пристойного размера, написанных в реалистичных условиях, и это заявление далось нелегко. Понимание пришло ко мне после восьми лет работы в Google. Там я наблюдал, как самые лучшие и талантливые веб-разработчики снова и снова выдают код с эксплуатируемыми багами.
Очевидный факт: опора на текстовые форматы, с их разделителями и вложенностью данных в данные, с кучей кодирований (когда UrlEncode, XMLEncode, FormDataEncode, JSONValueEncode могут сочетаться в безумных вариациях, а потом на сервере попадать в параметр SQL-запроса между кавычками...) дают самый настоящий эквивалент ошибкам выхода за границы массива....
И всё это сочетается с динамической типизацией языков. И именно вот это скриптинговое, бейсиковое мышление дало привязку к текстовым форматам, вместо разработки надёжных бинарных.
Ещё вечно приводили лозунг - "свободные текстовые против сложных проприетарных бинарных". Доигрались.