C++ server pages, однако
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.11.04 04:25
Оценка: 78 (5) :)
Всем привет.

Думаю, что это будет интересно, как ответ на принципиальный вопрос о применении C++ для Web-программирования. На сайте MicroNovae лежит движок C++ server pages. Ходить сюда: http://www.micronovae.com/default_csp.html

Кстати, разработка молодая. Как я понял, началась примерно в 2002-2003 г. Вероятно, не слишком большая популярность такого решения связана с такими причинами:

Первая — долгая стабилизация стандарта C++ и подтягиванием компиляторов.
Вторая — стереотип, который напрочь разделяет понятия "C++" и "Web-программирование".
Третья — приличная масса Web-программистов, у которых в послужном списке технологий есть SQL, Java, VB и нет C++.
Четвёртая — возможность создания потенциально опасного (exploiting) кода на C++. Согласитесь, что залезть в память средствами C++ не в пример проще, чем на Java.

Хотя четвёртая причина должна быть более актуальна для "публичных" провайдеров, которые рискнут предоставить CSP-хостинг. Для внутрикорпоративных же сайтов угроза exploiting-кода со стороны самих C++-Web-приложений существенно меньше, поскольку такой сайт может вовсе не содержать постороннего C++-кода. А скорость обработки запросов выше, однако. Сам я пока не проверял, но по идее, должно работать быстрее, чем JSP.

Вот так, или примерно так. Высказывайтесь, коллеги.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: C++ server pages, однако
От: Шахтер Интернет  
Дата: 20.11.04 04:38
Оценка: +3 :)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Всем привет.


ГВ>Думаю, что это будет интересно, как ответ на принципиальный вопрос о применении C++ для Web-программирования. На сайте MicroNovae лежит движок C++ server pages. Ходить сюда: http://www.micronovae.com/default_csp.html


ГВ>Кстати, разработка молодая. Как я понял, началась примерно в 2002-2003 г. Вероятно, не слишком большая популярность такого решения связана с такими причинами:


ГВ>Первая — долгая стабилизация стандарта C++ и подтягиванием компиляторов.

ГВ>Вторая — стереотип, который напрочь разделяет понятия "C++" и "Web-программирование".
ГВ>Третья — приличная масса Web-программистов, у которых в послужном списке технологий есть SQL, Java, VB и нет C++.
ГВ>Четвёртая — возможность создания потенциально опасного (exploiting) кода на C++. Согласитесь, что залезть в память средствами C++ не в пример проще, чем на Java.

ГВ>Хотя четвёртая причина должна быть более актуальна для "публичных" провайдеров, которые рискнут предоставить CSP-хостинг. Для внутрикорпоративных же сайтов угроза exploiting-кода со стороны самих C++-Web-приложений существенно меньше, поскольку такой сайт может вовсе не содержать постороннего C++-кода. А скорость обработки запросов выше, однако. Сам я пока не проверял, но по идее, должно работать быстрее, чем JSP.


ГВ>Вот так, или примерно так. Высказывайтесь, коллеги.


Не пощупав, трудно что-либо сказать.
Что касается популярности, то Web-дизайн -- слишком массовая профессия, что бы им заниматься на С++. Барьер квалификации, однако. Тут нужны более простые в освоении средства -- для чайников.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[2]: C++ server pages, однако
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.11.04 04:41
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Не пощупав, трудно что-либо сказать.

Я сейчас скачал, буду щупать. Глядишь, библиотечку какую-никакую сваяю. За ради унификации WinAPI-контролов и HTML-представления.

Ш>Что касается популярности, то Web-дизайн -- слишком массовая профессия, что бы им заниматься на С++. Барьер квалификации, однако. Тут нужны более простые в освоении средства -- для чайников.

Ладно, повременим с ёрничаньем. В "Философии програмирования" для этого всегда время и место есть.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: C++ server pages, однако
От: WFrag США  
Дата: 20.11.04 05:07
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Хотя четвёртая причина должна быть более актуальна для "публичных" провайдеров, которые рискнут предоставить CSP-хостинг. Для внутрикорпоративных же сайтов угроза exploiting-кода со стороны самих C++-Web-приложений существенно меньше, поскольку такой сайт может вовсе не содержать постороннего C++-кода.


А со стороны корпоративных пользователей? Например, путем посылки хитрого запроса.

ГВ>А скорость обработки запросов выше, однако. Сам я пока не проверял, но по идее, должно работать быстрее, чем JSP.


На самом деле, интересно было бы посмотреть на более-менее реальное сравнение с ASP.NET/JSP. Некоторый набор стресс-тестов на более-менее реальном приложении. Мне, в общем-то, не особо понятно за счет чего CSP может сильно превзойти по скорости данные технологии.

Сравнение CSP с ASP у них на сайте — это, по-моему, издевательство какое-то. ASP же вроде интерпретируемый?
Re[2]: C++ server pages, однако
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.11.04 05:26
Оценка:
Здравствуйте, WFrag, Вы писали:

ГВ>>Хотя четвёртая причина должна быть более актуальна для "публичных" провайдеров, которые рискнут предоставить CSP-хостинг. Для внутрикорпоративных же сайтов угроза exploiting-кода со стороны самих C++-Web-приложений существенно меньше, поскольку такой сайт может вовсе не содержать постороннего C++-кода.

WF>А со стороны корпоративных пользователей? Например, путем посылки хитрого запроса.
Хм. Хакаются, вроде как, Web-серверы (т.е. — IIS, Apache и иже с ними), а не xSP-модули, которые сами по себе серверами не являются.

ГВ>>А скорость обработки запросов выше, однако. Сам я пока не проверял, но по идее, должно работать быстрее, чем JSP.

WF>На самом деле, интересно было бы посмотреть на более-менее реальное сравнение с ASP.NET/JSP. Некоторый набор стресс-тестов на более-менее реальном приложении. Мне, в общем-то, не особо понятно за счет чего CSP может сильно превзойти по скорости данные технологии.
Думаю, что в основном — за счёт более быстрой генерации Response-буфера.

WF>Сравнение CSP с ASP у них на сайте — это, по-моему, издевательство какое-то. ASP же вроде интерпретируемый?

Согласен, что тут они палку несколько перегнули, хотя смотрится впечатляюще. Особенно любопытно с JSP сравнить. Обязательно поковыряю на досуге.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[3]: C++ server pages, однако
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.11.04 09:27
Оценка: 16 (1) +2
Здравствуйте, Геннадий Васильев, Вы писали:

WF>>А со стороны корпоративных пользователей? Например, путем посылки хитрого запроса.

ГВ>Хм. Хакаются, вроде как, Web-серверы (т.е. — IIS, Apache и иже с ними), а не xSP-модули, которые сами по себе серверами не являются.

Хакается все. Если на обработке query string возможно переполнение буфера внутри С++-скрипта, то это самый обыкновенный эксплоит.
... << RSDN@Home 1.1.4 beta 3 rev. 231>>
AVK Blog
Re: C++ server pages, однако
От: buriy Россия http://www.buriy.com/
Дата: 20.11.04 11:07
Оценка: 10 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Всем привет.


ГВ>Думаю, что это будет интересно, как ответ на принципиальный вопрос о применении C++ для Web-программирования. На сайте MicroNovae лежит движок C++ server pages. Ходить сюда: http://www.micronovae.com/default_csp.html


ГВ>Кстати, разработка молодая. Как я понял, началась примерно в 2002-2003 г.


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

Например, копай в сторону замечательного комплекса программ UCJ (используемые языки — C и Perl).
/bur
Re[2]: C++ server pages, однако
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.04 00:20
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Сравнение CSP с ASP у них на сайте — это, по-моему, издевательство какое-то. ASP же вроде интерпретируемый?


ASP страница это byte code который цепляется как stream к файлу с расширением asp.
Re: C++ server pages, однако
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.04 00:24
Оценка: +1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Вот так, или примерно так. Высказывайтесь, коллеги.


"Секс это что новое или мы им всегда занимались?"

В смысле идея не нова. Года три назад то ли в DDJ то ли в CUJ была большая статья на тему.

По моему (не помню) в ней описывались C++ servlets
http://stud3.tuwien.ac.at/~e9626231/cse/home.html

На самом деле это есть ни что иное как ++тизация идей CGI и пр.
Что как известно работает и вельми.
Re[2]: C++ server pages, однако
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 21.11.04 16:56
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>На самом деле это есть ни что иное как ++тизация идей CGI и пр.

CS>Что как известно работает и вельми.

А эта модель не работать попросту не может. Единственная относительно серьёзная проблема — время трансляции страницы в DLL. Всё же прочее — точь в точь JSP, ASP и прочее.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: C++ server pages, однако
От: vdimas Россия  
Дата: 21.11.04 23:52
Оценка: +1 -1 :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Хакается все. Если на обработке query string возможно переполнение буфера внутри С++-скрипта, то это самый обыкновенный эксплоит.


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

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

да и не скрипт там, а компиляция чего надо куда положено
Re[3]: C++ server pages, однако
От: vdimas Россия  
Дата: 21.11.04 23:55
Оценка: +1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, c-smile, Вы писали:


CS>>На самом деле это есть ни что иное как ++тизация идей CGI и пр.

CS>>Что как известно работает и вельми.

ГВ>А эта модель не работать попросту не может. Единственная относительно серьёзная проблема — время трансляции страницы в DLL. Всё же прочее — точь в точь JSP, ASP и прочее.


время однократной трансляции
Re: C++ server pages, однако
От: hrg Россия  
Дата: 22.11.04 08:14
Оценка: +1
Геннадий Васильев -> "C++ server pages, однако"

ГВ> Первая — долгая стабилизация стандарта C++ и подтягиванием

ГВ> компиляторов.
ГВ> Вторая — стереотип, который напрочь разделяет понятия "C++" и
ГВ> "Web-программирование".
ГВ> Третья — приличная масса Web-программистов, у которых в послужном
ГВ> списке технологий есть SQL, Java, VB и нет C++.
ГВ> Четвёртая — возможность создания потенциально опасного (exploiting)
ГВ> кода на C++. Согласитесь, что залезть в память средствами C++ не в
ГВ> пример проще, чем на Java.

Пятая, которая косвенно проистекает из 2 и 3-й — время разработки приложения
(недостаточная квалификация, отсутствие бибилиотек и т.д.)

Yury Kopyl aka hrg | Хоббиты — маздай! Мордовия — фарева
Posted via RSDN NNTP Server 1.9 gamma
Re[3]: C++ server pages, однако
От: Lloyd Россия  
Дата: 22.11.04 08:41
Оценка: +1 :))
Здравствуйте, c-smile, Вы писали:

CS>ASP страница это byte code который цепляется как stream к файлу с расширением asp.


Сам-то понял что сказал?
Re[5]: C++ server pages, однако
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.11.04 09:29
Оценка:
Здравствуйте, vdimas, Вы писали:

V>переполнением буфера обычно страдали программы на С, где все было на статических массивах или массивах фиксированой размерности.


V>если использовать STL, то максимум что произойдет — перевыделение памяти в недрах STL, эксплоит не возможен в принципе.


Ага. Вот только почему то в сетевом софте, в том числе и писанном на плюсах, эксплойты находят регулярно.

V>да и не скрипт там, а компиляция чего надо куда положено


Скрипты тоже могут быть компилируемыми.
... << RSDN@Home 1.1.4 beta 3 rev. 232>>
AVK Blog
Re[6]: C++ server pages, однако
От: vdimas Россия  
Дата: 22.11.04 10:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

V>>если использовать STL, то максимум что произойдет — перевыделение памяти в недрах STL, эксплоит не возможен в принципе.


AVK>Ага. Вот только почему то в сетевом софте, в том числе и писанном на плюсах, эксплойты находят регулярно.


и что это за сетевой софт на плюсах, где есть эксплоит?

----------

но даже и на плюсах при достаточной кривизне рук ничто не мешает писать в духе С:
#define BIG_BUFF_LEN 1000

int some_func(stream* st) {
    ...
    char buff[BIG_BUFF_LEN]; 
    stream->read_string(buff);    // получи эксплоит
    ...
}


V>>да и не скрипт там, а компиляция чего надо куда положено


AVK>Скрипты тоже могут быть компилируемыми.


насколько мне казалось, скриптовые языки отличаются своей интерпретируемостью. причем некоторые скриптовые языки невозможно скомпилировать.
Re[7]: C++ server pages, однако
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.11.04 10:46
Оценка: 1 (1)
Здравствуйте, vdimas, Вы писали:

V>насколько мне казалось, скриптовые языки отличаются своей интерпретируемостью. причем некоторые скриптовые языки невозможно скомпилировать.

http://en.wikipedia.org/wiki/Script_language

Scripting programming languages (commonly called scripting languages or script languages) are computer programming languages designed for "scripting" the operation of a computer. Early script languages were often called batch languages or job control languages.

Contents
1 Description

2 Notes

3 List of scripting programming languages

4 External link

Description
Computer languages are created for varying purposes and tasks — different kinds and styles of programming. One common programming task is known as scripting, or connecting diverse pre-existing components to accomplish a new related task. Those languages which are suited to scripting are typically called scripting languages. Many languages for this purpose have common properties: they favor rapid development over efficiency of execution; they are often implemented with interpreters rather than compilers; and they are strong at communication with program components written in other languages

Разницу между often и always ощущаешь?
... << RSDN@Home 1.1.4 beta 3 rev. 232>>
AVK Blog
Re: C++ server pages, однако
От: Евгений Коробко  
Дата: 22.11.04 12:48
Оценка:
Вспомним историю развития средств:
1. CGI Хорошо, но медленно: для каждого клиента запускается отдельный процесс. Вместо этого придумали
2. ISAPI. Модули в DLL. Быстро, но глючно: AV в DLL приводит к обрушению всего web-сервера. Да и с обновлением версий модулей проблемы — требует перезапуска сервера
3. Скрипты: ASP, PHP и пр. Относительно быстро: всё в одном процессе. Надёжно: скрипт AV вызвать не может. Обновлять легко. Но когда код большой, насинаются проблемы: в коде не разобраться, да и работает не быстро, поэтому придумали 4:
4. Виртуальные машины: JSP, ASP.NET. Тут вроде пока всё хорошо. Надёжно. Довольно быстро. Код сложный можно писать. Обновлять легко.

Использование С++ в виде dll порождает проблему 2 — падение модуля приводит к падению сервера
Posted via RSDN NNTP Server 1.9 gamma
Евгений Коробко
Re[2]: C++ server pages, однако
От: hrg Россия  
Дата: 22.11.04 13:06
Оценка:
Евгений Коробко -> "Re: C++ server pages, однако"

ЕК> Вспомним историю развития средств:

ЕК> 1. CGI Хорошо, но медленно: для каждого клиента запускается
ЕК> отдельный процесс. Вместо этого придумали
ЕК> 2. ISAPI. Модули в DLL. Быстро, но глючно: AV в DLL приводит к
ЕК> обрушению всего web-сервера. Да и с обновлением версий модулей
ЕК> проблемы — требует перезапуска сервера

2.1 Встраиваемые модули для apache (mod_perl, mod_php, mod_asp). Быстро и
безопасно.

Yury Kopyl aka hrg | Хоббиты — маздай! Мордовия — фарева
Posted via RSDN NNTP Server 1.9 gamma
Re[2]: C++ server pages, однако
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 22.11.04 13:13
Оценка:
Здравствуйте, Евгений Коробко, Вы писали:

ЕК>Использование С++ в виде dll порождает проблему 2 — падение модуля приводит к падению сервера

От кривизны рук всегда защититься сложно. Что поделаешь... Значит, просто требования к квалификации разработчиков должны быть выше.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.