Re[4]: cppcms
От: Sheridan Россия  
Дата: 22.09.14 13:18
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Макс, со мной о таких вещах спорить безполезно. "Атаковать могут" — все, это незащищенный софт. Да, он все же еще может быть безопасным, но моя специализация все же защищенность, а не безопасность. А "разве что" и "да и зачем" — это уже из области анализа рисков и совершенно не мое)


Да я и не спорю об этом. Я лишь говорю что веб-приложения на c++ вполне себе писать можно. А будет необходимость защитить, так всё реализуемо, было бы желание и стимул
Matrix has you...
Re[11]: cppcms
От: Ночной Смотрящий Россия  
Дата: 22.09.14 21:38
Оценка: +4
Здравствуйте, Sheridan, Вы писали:

S>Вот тебе кусочек кода


HTML в виде строковых констант в коде? В 2014 году? Че, серьезно?
Re[12]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 03:51
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Вот тебе кусочек кода

НС>HTML в виде строковых констант в коде? В 2014 году? Че, серьезно?
Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?
Matrix has you...
Re[2]: cppcms
От: Хон Гиль Дон Россия  
Дата: 23.09.14 06:44
Оценка: 2 (1) +1
Здравствуйте, kochetkov.vladimir, Вы писали:


S>>В общем ничего там сложного нет, с++ вполне подходит для веб приложений.


KV>Вот только телодвижений для обеспечения защиенности там требуется "слегка" больше (что даже авторы той CMS признают: http://cppcms.com/wikipp/en/page/secure_programming#C.and.C...Security), а профит, который можно получить от использования нативного компилируемого языка, ощутим разве что только в совсем highload-системах


А где там про "больше телодвижений"? Просто перечислен ряд общих рекомендаций, о которые вменяемые программисты и так в курсе и лет 10 как поголовно соблюдают, и пара специфических для веб типа проверки utf-8 на корректность (что, опять же, скорее всего уже делается используемыми библиотеками).
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[3]: cppcms
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 23.09.14 07:50
Оценка: +1
Здравствуйте, Хон Гиль Дон, Вы писали:

ХГД>А где там про "больше телодвижений"?


Отсюда и до конца страницы.

ХГД>Просто перечислен ряд общих рекомендаций


Этот ряд несколько меньше для разработчиков веб-приложений на более традиционных для данной предметной области языках.

ХГД>о которые вменяемые программисты и так в курсе и лет 10 как поголовно соблюдают,


Да, жаль, что все уязвимые приложения были написаны невменяемыми программистами

ХГД>и пара специфических для веб типа проверки utf-8 на корректность


Как корректность UTF-8 связана с вебом? O_o

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[13]: cppcms
От: genre Россия  
Дата: 23.09.14 08:24
Оценка:
Здравствуйте, Sheridan, Вы писали:

НС>>HTML в виде строковых констант в коде? В 2014 году? Че, серьезно?

S>Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?

А что в 2014 году еще кому-то нужна вот эта производительность?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[14]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 08:26
Оценка: +1
Здравствуйте, genre, Вы писали:

НС>>>HTML в виде строковых констант в коде? В 2014 году? Че, серьезно?

S>>Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?
G>А что в 2014 году еще кому-то нужна вот эта производительность?
Да никому не нужна конечно, продолжайте наблюдения.
Matrix has you...
Re[13]: cppcms
От: Privalov  
Дата: 23.09.14 08:26
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?


Понимаешь, какая штука. Допустим, ты где-то слегка ошибся в HTML-коде. Например, написал <a href='/tasks/add'>Саздать задачу</a>. Так вот: исправление такой ошибки может занять пару недель. Потому что ни один вменяемый менеджер проекта никода не выпустит в production версию без полного цикла тестирования. А, как ты говоришь, перекомпиляция — это построение новой версии. Такие дела.
Re[15]: cppcms
От: genre Россия  
Дата: 23.09.14 08:36
Оценка: +3
Здравствуйте, Sheridan, Вы писали:

НС>>>>HTML в виде строковых констант в коде? В 2014 году? Че, серьезно?

S>>>Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?
G>>А что в 2014 году еще кому-то нужна вот эта производительность?
S>Да никому не нужна конечно, продолжайте наблюдения.

Есть подозрение, что ты не оценивал производительность, а просто "будет так потому что быстрее". Так?
А поддержка и прочее побоку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[4]: cppcms
От: Хон Гиль Дон Россия  
Дата: 23.09.14 08:39
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:


ХГД>>А где там про "больше телодвижений"?


KV>Отсюда и до конца страницы.


Я это внимательно прочитал, ничего про лишние телодвижения там не увидел, кроме разве что проверки корректности utf. Не могли бы вы указать, какие конкретно "лишние телодвижения" там описываются еще?

ХГД>>Просто перечислен ряд общих рекомендаций


KV>Этот ряд несколько меньше для разработчиков веб-приложений на более традиционных для данной предметной области языках.


Да неужели?


ХГД>>о которые вменяемые программисты и так в курсе и лет 10 как поголовно соблюдают,


KV>Да, жаль, что все уязвимые приложения были написаны невменяемыми программистами


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


ХГД>>и пара специфических для веб типа проверки utf-8 на корректность


KV>Как корректность UTF-8 связана с вебом? O_o


Чисто статистически — ломать типичное десктопное приложение, подсовывая некорректный utf, мало кому надо (по сравнению, опять же, с вебом).
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[14]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 08:53
Оценка: :)
Здравствуйте, Privalov, Вы писали:

S>>Всё правильно, упор на производительность. Или в 2014 году есть какая то сложность в компиляции кода?


P>Понимаешь, какая штука. Допустим, ты где-то слегка ошибся в HTML-коде. Например, написал <a href='/tasks/add'>Саздать задачу</a>. Так вот: исправление такой ошибки может занять пару недель. Потому что ни один вменяемый менеджер проекта никода не выпустит в production версию без полного цикла тестирования. А, как ты говоришь, перекомпиляция — это построение новой версии. Такие дела.


Понимаешь, какая штука... На распарсинг шаблона страницы с заменой %переменных%, с разворачиванием циклов (записи, комментарии) и прочей лабудой откусится кусок процессорного времени, который мог бы потратиться на что то полезное, например на генерацию еще одной страницы другому клиенту.
И всё ради того, чтобы проблему "две недели тестирования и после этого в продакшн" переместить от разработчиков к дизайнерам.
Такие дела.

Да, у меня в проекте хтмл генерируется прямо в коде. Что вам мешает сделать по другому, почему мой пример того что на с++ можно писать приложения ставится как пример того что на с++ нельзя писать веб-приложения? Только из за того что необходима компиляция? Это что, такой способ ухода от ответственности — типа "так как компилятор может чего нибудь некрасивого написать и это будет видно перед публикацией в продакшн, то мы откажемся от компилятора и сразу в продакшн"? Или это избавление от "лишних" затрат времени программистов на компиляцию, типа "нам наплевать, пусть клиент берет более мощный сервер"?
Лично я не вижу разницы, тесты нужны как в случае компиляции, так и в случае инрепритации кода. Тесты нужны и дизайнерам на достижение устраивающего всех дизайна.
Или ты о том, что пункты меню надо дать возможность добавлять и править админам приложения? А ты в курсе про байку, в которой говорится что если разработчик не уверен в необходимости/правильности чегототам (поведения, меню, вида), он добавляет новую опцию в настройки?
Или ты о том, что исходники клиенту неохота отдавать? Ну так всякие пэхапэ всё равно отдать придется.

Я понимаю, что разработка действительно крупного проекта обязательно упрётся в подобные препоны между "мы тут написали/поправили" и продакшном, но это препоны скорее административные, чем проблемы выбора языка и архитектуры. Да, придется несколько поменять привычный цикл разработки. Да, продукт выйдет дороже, чем "склепали на пэхапэ". Но я правильно понимаю, что качество и скорость работы превыше всего или современные реалии окончательно требуют отказаться от качества, скорости работы софта и все точки сборки сместились к "быстро пилим, хоп-хоп и в продакшн"?
Matrix has you...
Re[16]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 09:01
Оценка: :)
Здравствуйте, genre, Вы писали:

G>Есть подозрение, что ты не оценивал производительность, а просто "будет так потому что быстрее". Так?

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

G>А поддержка и прочее побоку.

Не вижу проблем в поддержке. Если конечно на поддержку не посадить тетю Машу из третьей смены уборщиц.

И вообще, я так понимаю, тут почему то никому не нравится с++. Ну так не ешьте. Были сомнения что веб-приложения на с++ написать нельзя? Я эти сомнения развеял. Что вы еще пытаетесь доказать? Что я как то неправильно пишу? Ну так это мои проблемы, пишите правильно.
Matrix has you...
Re[5]: cppcms
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 23.09.14 10:02
Оценка:
Здравствуйте, Хон Гиль Дон, Вы писали:

ХГД>Я это внимательно прочитал, ничего про лишние телодвижения там не увидел, кроме разве что проверки корректности utf. Не могли бы вы указать, какие конкретно "лишние телодвижения" там описываются еще?

ХГД>Да неужели?

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

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


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

KV>>Как корректность UTF-8 связана с вебом? O_o

ХГД>Чисто статистически — ломать типичное десктопное приложение, подсовывая некорректный utf, мало кому надо (по сравнению, опять же, с вебом).

Чисто статистически, проблемы с некорректным юникодом более актуальны для нативных языков и древних версий скриптовых (потому что их интерпретаторы/компиляторы потянули за собой проблемы нативного языка, на котором были разработаны). Я могу придумать сценарий, при котором приложение на управляемом языке будет подвержено каким-либо атакам из-за недостаточной обработки кодировок, но на практике таких сценариев ни я, ни мои коллеги не встречали
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[17]: cppcms
От: genre Россия  
Дата: 23.09.14 10:05
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>И вообще, я так понимаю, тут почему то никому не нравится с++. Ну так не ешьте. Были сомнения что веб-приложения на с++ написать нельзя? Я эти сомнения развеял. Что вы еще пытаетесь доказать? Что я как то неправильно пишу? Ну так это мои проблемы, пишите правильно.


А тебе не приходила в голову мысль взять какой-нибудь более подходящий инструмент и к этому моменту запилить раза в два-три больше?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[15]: cppcms
От: Privalov  
Дата: 23.09.14 10:08
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>Понимаешь, какая штука... На распарсинг шаблона страницы с заменой %переменных%, с разворачиванием циклов (записи, комментарии) и прочей лабудой откусится кусок процессорного времени, который мог бы потратиться на что то полезное, например на генерацию еще одной страницы другому клиенту.

S>И всё ради того, чтобы проблему "две недели тестирования и после этого в продакшн" переместить от разработчиков к дизайнерам.
S>Такие дела.

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

P. S. Когда-то давно ассемблерщики выдвигали против фортранщиков примерно те же аргументы, что ты выдвигаешь против тех, кто работает на языках, отличных от С++ . Но скажи, где сейчас Фортран и где — Ассемблер?
Отредактировано 23.09.2014 10:28 Privalov . Предыдущая версия .
Re[18]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 10:18
Оценка:
Здравствуйте, genre, Вы писали:

S>>И вообще, я так понимаю, тут почему то никому не нравится с++. Ну так не ешьте. Были сомнения что веб-приложения на с++ написать нельзя? Я эти сомнения развеял. Что вы еще пытаетесь доказать? Что я как то неправильно пишу? Ну так это мои проблемы, пишите правильно.


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


Мне пришло в голову взять подходящий инструмент и запилить более шустрый проект.
Matrix has you...
Re[17]: cppcms
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 23.09.14 10:21
Оценка: +5
Здравствуйте, Sheridan, Вы писали:

S>Были сомнения что веб-приложения на с++ написать нельзя? Я эти сомнения развеял.


Сомнений в том, что веб-приложения _можно_ писать на любом полным по Тьюрингу языке под рантаймом, умеющим так или иначе работать с сокетами, ни у кого и не было Были сомнения относительно того, _зачем_ это делать? И они, в общем-то, никуда не делись.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: cppcms
От: Хон Гиль Дон Россия  
Дата: 23.09.14 10:22
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:


ХГД>>Я это внимательно прочитал, ничего про лишние телодвижения там не увидел, кроме разве что проверки корректности utf. Не могли бы вы указать, какие конкретно "лишние телодвижения" там описываются еще?

ХГД>>Да неужели?

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


Не добавляются, а заменяется — зачем в скриптовых языках в стек гадить, если в них поголовно eval имеется


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


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


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


KV>Чисто статистически, проблемы с некорректным юникодом более актуальны для нативных языков и древних версий скриптовых (потому что их интерпретаторы/компиляторы потянули за собой проблемы нативного языка, на котором были разработаны).


Кто и на какой выборке сравнивал?

KV>Я могу придумать сценарий, при котором приложение на управляемом языке будет подвержено каким-либо атакам из-за недостаточной обработки кодировок, но на практике таких сценариев ни я, ни мои коллеги не встречали


Ога, а для нативных приложений, можно подумать, встречали, а не чисто теоретически придумали
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[16]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 10:30
Оценка: :))
Здравствуйте, Privalov, Вы писали:


P>Понимаешь, какая штука... Времена, когда процессорное время ценилось выше рабочего времени специалиста, давно и безвозвратно ушли. Доугими словами, ни один вменяемый менеджер проекта не даст 2 недели на выпуск версии из-за одной неправильно прописанной буквы. Он предпочтет потратить время работы команды на что-нибудь более полезное. Это значит, что в реальных проектах такого кода, как ты показал, не будет. Собственно, его там и нет. При этом HTML-страницы все еще генерируются автоматически.

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

P>Еще давай вспомним, что на доставку HTML-страницы клиенту тратится времени столько, что твоя экономия на тактах процессора перестает быть заметной. Такие дела.

Гм. Давай посмотрим.
пэхапэ + шаблоны: получение запроса, парсинг кода, интерпритация, запрос данных в бд, парсинг шаблонов, сборка страницы из "шаблон+данные", передача клиенту.
с++ + инлайн-хтмл: получение запроса, запрос данных в бд, сборка страницы исходя из данных, передача клиенту.
Из этого я вижу укорачивание процесса запрос-результат на три шага, от 7 к 4. Причем уходят именно ресурсоёмкие шаги: парсинг, интерпритация.
Да и вообще, оправдывать тормозной код тем, что все равно "много" времени уйдет на доставку результата как минимум неверно, ибо результат надо доставить в любом случае.

P>P. S. Когда-то давно ассемблерщики выдвигали против фортранщиков примерно те же аргументы, что ты выдвигаешь против тех, кто работает на языках, отличных от С++ . Но скажи, где сейчас Фортран и где — Ассемблер?

Все ушли в с\с++, как более удобный инструмент и при этом практически настолько же шустрый.
Matrix has you...
Re[18]: cppcms
От: Sheridan Россия  
Дата: 23.09.14 10:33
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Сомнений в том, что веб-приложения _можно_ писать на любом полным по Тьюрингу языке под рантаймом, умеющим так или иначе работать с сокетами, ни у кого и не было Были сомнения относительно того, _зачем_ это делать? И они, в общем-то, никуда не делись.


Вопрос несколько в другой плоскости я поднимаю: а почему бы и нет?
Судя по этим веткам — потому что современные реалии требуют не качественный и быстрый код, а как можно более быстрый и дешевый процесс разработки.
Matrix has you...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.