Как написать веб сервис на паскале?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Как написать веб сервис на паскале?

Сообщение sts » 25.05.2017 12:26:03

azsx писал(а):Для меня слишком круто учить go для написания чат бота.


да там учить нечего, отличия от паскаля косметические вместо record - struct, ООП немного странное - упрощенное до рекордов с методами, наследование заменено агрегацией.

Добавлено спустя 5 минут 41 секунду:
говорю же - достаточно опыта написания программ на паскале или бейсике в процедурном стиле, на го, через три часа будете клепать сервисы в припрыжку.
sts
постоялец
 
Сообщения: 243
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 25.05.2017 12:36:26

Лекс Айрин писал(а):Какая разница, если все это обрабатывается на стороне сервера?

есть команды, которые можно послать программе на сервере (спец. символы) и если их не удалить из message, то сервер откроет доступ или повиснет. Соответственно, получая message программа написанная на паскале, становится уязвимой для таких спец. символов и команд. PHP тоже уязвима, в этой области, но там 1 000 000 программистов решают эту задачу и есть несколько функций - чистящих запросы. А здесь автору придётся самому это всё искать и удалять.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3110
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение azsx » 25.05.2017 12:54:35

оффтопик
есть команды, которые можно послать программе на сервере (спец. символы) и если их не удалить из message

Как я понимаю это так хитро вы про утечку памяти пишете? Или про sql инъекции?
azsx
энтузиаст
 
Сообщения: 896
Зарегистрирован: 16.11.2015 06:38:32

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 25.05.2017 12:59:51

azsx писал(а):Как я понимаю это так хитро вы про утечку памяти пишете? Или про sql инъекции?

Да, про SQL инъекции в том числе. Про утечку памяти не знаю, но вполне возможно, что там можно слать какие-то message, которые приведут к утечке памяти на паскалевской программе и в итоге к сбою сервера. пхп в этом отношении более защищён, т.к. там даже при наличии такого сбоя, сбойный скрипт, автоматом будет отключен, а программа на паскале повиснет до ручной перезагрузки её админом. Либо придётся писать надстройку в виде демона. И это только один из 1000 вариантов.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3110
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение azsx » 25.05.2017 13:04:03

В интернете ваще опасно, там вирусы кругом.
Логично погадаю, что утечки памяти в паскале нет. sql инъекции -- ага, надо фильтровать ввод пользователя. Для этого я и хочу json принимать.
azsx
энтузиаст
 
Сообщения: 896
Зарегистрирован: 16.11.2015 06:38:32

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 25.05.2017 13:09:28

vitaly_l писал(а):и если их не удалить из message, то сервер откроет доступ или повиснет. Соответственно, получая message программа написанная на паскале, становится уязвимой для таких спец. символов и команд.


а зачем их передавать программе? Да и бывает такое только если программа криво написана.

Добавлено спустя 1 минуту 42 секунды:
vitaly_l писал(а):а программа на паскале повиснет до ручной перезагрузки её админом.


Да ладно... в случае сбоя запустится обработчик.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4181
Зарегистрирован: 19.02.2013 16:54:51

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 25.05.2017 15:12:28

azsx писал(а):Для этого я и хочу json принимать

В json тоже есть ограничения на допустимые данные, и json не фильтрует sql инъекции. Там как правило делают регулярки, удаляющие всё, что не буквы и не цифры, со знаками препинания. И даже этого будет мало.
Лекс Айрин писал(а):а зачем их передавать программе?

на этом построено общение клиент/сервер
Лекс Айрин писал(а):Да ладно... в случае сбоя запустится обработчик.

в случае сбоя, может повиснуть не только плохо написанная Лексом и Айрином программа на паскале но и весь сервер может рухнуть, если ...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3110
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 25.05.2017 16:01:43

vitaly_l писал(а):на этом построено общение клиент/сервер


но сервер не обязан все отдавать на обработку... у него своя логика достаточно сложная.

vitaly_l писал(а):в случае сбоя, может повиснуть не только плохо написанная Лексом и Айрином программа на паскале но и весь сервер может рухнуть, если ...


Ты, случайно, язык не перепутал? На С это нормальное явление (там слабее встроенный контроль за ресурсами), но паскалевские программы имеют немного другую идеологию. И уронить другую программу им проблематично. Так что сбой из-за входной строки в паскалевской программе это нонсенс. А если просто подвесить... так это в любом языке реально. Тут дело в подходе. (например, если загрузить в memo слишком большой текст и полностью его обрабатывать. И даже в этом случае наверняка есть способы решения проблем)
И, кстати, плох тот сервер, который не контролирует свою загрузку и не перегружает периодически сервисы, дает им захлебываться данными... в общем, пускает дело на самотек.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4181
Зарегистрирован: 19.02.2013 16:54:51

Re: Как написать веб сервис на паскале?

Сообщение Mirage » 25.05.2017 16:09:42

Бери mORMot. Готовый фреймворк ,заточен под создание REST сервисов.
Mirage
энтузиаст
 
Сообщения: 753
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как написать веб сервис на паскале?

Сообщение pupsik » 25.05.2017 18:06:13

Mirage там некоторые вещи виндо зависимые, иные "онли дельфин".
pupsik
энтузиаст
 
Сообщения: 1017
Зарегистрирован: 20.08.2014 16:20:13

Re: Как написать веб сервис на паскале?

Сообщение Mirage » 25.05.2017 20:38:00

Продвигается как кроссплатформенный. Поддержка FPC добавлена довольно давно. Вроде все, кроме некоторых видов RTTI, работает. Не знаю что именно от этого зависит, но попробовать стоит.
Mirage
энтузиаст
 
Сообщения: 753
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как написать веб сервис на паскале?

Сообщение stanilar » 26.05.2017 01:45:07

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

Потому как есть много решений для паскаля именно в области построение серверов, но готовых решений вида вики нет. Так же нет готовых заготовок для авторизации и т.п. Если говорить про продакшн, то на паскале имеет смысл писать 1) внутренний сервис, который не будет виден снаружи 2) писать именно сервер, потому как встраивание длл-ок в апач или пхп затрудняет дебаг. При соблюдении этих двух пунктов читать особо нечего - кидаете на форму любой компонент по работе с интернетом и обрабатываете событие OnReceive + задаете конкретные вопросы в форум.

З.Ы. Если интерфейс построен на современном js фреймворке (angular, react), то тут разницы между пхп/явой/шарпом/паскалем/ноде будет очень немного. IMHO думаю даже что с современными возможностями серверов БД и клиентского js, любая прослойка между ними очень скоро станет лишней.

З.Ы.2 Причем сервис должен быть внутренним вовсе не потому, что программа может упасть или еще что-то похожее с ней случится (типа пресловутого инъекта). Но вот готовых решений для защиты от чего-то подобного DDOS атаки в паскале точно нет(типа авторизации).
stanilar
постоялец
 
Сообщения: 271
Зарегистрирован: 09.03.2010 19:09:02

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 09:29:41

stanilar писал(а): Но вот готовых решений для защиты от чего-то подобного DDOS атаки в паскале точно нет(типа авторизации).


Не поможет авторизация... когда дается отлуп сотням (тысячам), то даже неудачная попытка зайти (в сумме) может серьезно подвесить сервер. На этом и основан эффект DDOS атаки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4181
Зарегистрирован: 19.02.2013 16:54:51

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 26.05.2017 09:44:34

stanilar писал(а):с современными возможностями серверов БД и клиентского js, любая прослойка между ними очень скоро станет лишней

Чёй-то меня гложет смутное сомненье в этом. Как это из JS напрямую обращаться к БД? Для этого, как минимум нужно в открытый доступ выложить пароль логин и название БД... Это уже даже DDOS атака ненужна будет, чтобы получить/испортить ЛЮБЫЕ данные. Разве что, дать доступ пользователю только на чтение БД? Но опять-таки, он будет видеть всю структуру и все таблицы... Так что, пока что без "прослойки" - это не реально.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3110
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Ichthyander » 26.05.2017 09:52:48

Создавал-таки я подобную тему viewtopic.php?f=25&t=11057 , в итоге меня отговорили это делать на паскале.. :)
Аватара пользователя
Ichthyander
постоялец
 
Сообщения: 304
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru