Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Долой backend! Все делаем на javascript в frontend. (https://javascript.ru/forum/library-toolkit-framework/73169-dolojj-backend-vse-delaem-na-javascript-v-frontend.html)

Nexus 27.04.2018 14:49

Цитата:

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

Не это было целью, хотя одной из них.

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

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


ps. Если вам нужно будет реализовать список пользователей (+ регистрация, авторизация, etc.) как вы это сделаете?)

ГеннадийС 27.04.2018 14:54

Поверить наслово? Или не поверить? Не знаю. Но зато хоть пообщался. И на том спасибо!

ГеннадийС 27.04.2018 14:56

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

Nexus 27.04.2018 15:01

Цитата:

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

Как вы пользователя авторизовывать будете? Точнее как проверять, что конкретному пользователю действительно принадлежит аккаунт, ссылку на который вы каким-либо образом где-нибудь в каком-либо виде сохраните?

ГеннадийС 27.04.2018 15:06

Запрос с клиента будет приходить с логином и паролем. Программа, ограничивающая доступ, будет проверять пароль, беря пароль из базы данных. Если пароль совпал, программа проверит запрос на соответствие уровню доступа, если всё хорошо, выполнит запрос и отправит данные клиенту.

laimas 27.04.2018 15:15

Цитата:

Сообщение от ГеннадийС
Запрос с клиента будет приходить с логином и паролем. Программа, ограничивающая доступ, будет проверять пароль, беря пароль из базы данных.

Обязательно найдите и почитайте о таком опасном виде атаки как "человек посередине". Что это будет означать в плане, когда тело запроса отправляется клиентом?

А ведь и снифферы живут и процветают. Неужели непонятно, что то, что вы выдаете за благо, никак не помогает серверу, а есть просто беспечность?

ГеннадийС 27.04.2018 15:17

Без шифрования никакое использование пароля не имеет смысла. Это я насчёт атаки посредника. И перехват трафика не имеет смысла, если используется шифрование.

Белый шум 27.04.2018 15:21

ГеннадийС,
Основные тормоза на сервере - это как раз запросы к БД. Этих запросов средняя веб-страница делает десятки (а то и сотни). SQL-запросы нельзя послать одним скопом, т.к. многие из них зависят от результата предыдущих. Т.о. ваша страница будет дико тормозить, т.к. вместо одного запроса к серверу будет делать их множество (через весь интернет, а не к локальной БД).

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

ГеннадийС 27.04.2018 15:30

Я эксперементировал с базой данных, предназначенной для хранения данных. То есть веб страницы там формировались в виде таблиц. С этим было всё хорошо.

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

Но всё равно я сомневаюсь, что такое часто бывает на сайтах.

laimas 27.04.2018 15:31

Цитата:

Сообщение от ГеннадийС
Без шифрования никакое использование пароля не имеет смысла. Это я насчёт атаки посредника.

Значит не прочли как следует или вообще не читали.

Nexus 27.04.2018 15:40

Цитата:

Сообщение от ГеннадийС
Программа, ограничивающая доступ, будет проверять пароль, беря пароль из базы данных.

Если вы возвращаете какие-то отдельные сервисы на backend, то имеет ли смысл вообще от него отказываться?
Дешевле backend специалист не станет от того, что ему нужно будет обслуживать только список пользователей и еще нечто, что вы не сможете реализовать на клиенте.

ГеннадийС 27.04.2018 15:46

laimas,
Атака посредника самый очевидный способ несанкционированного получения доступа к информации. Передача паролей по уязвимой линии для любого сайта недопустима. Всегда необходимо шифрование. Что я ещё об этом могу вычитать?

laimas 27.04.2018 16:20

ГеннадийС,
банально подделывают запрос, пакеты, сертификаты, компрометируют браузеры, просят подтверждений для получения ключа и т.д. Другими словами, если кто-то серьезно заинтересуется и возьмется, то получит необходимое, а у вас то, что должно быть скрыто, на блюдечке.

Да и вообще. Пусть я имею двух пользователей БД, одного с правами как администратора, а второго только для выборки из БД. То, что тело запроса формируемое на клиенте разгружает сервер, это полнейший бред, о чем и полемизировать не стоит. А то, что в этом случае сервер лишен возможности фильтровать данные извне, что он обязан делать, есть предпосылка к большим неприятностям, это факт, и шифрование, еще не есть гарантия. Иное доказывайте школьникам, кому угодно, мне не надо. :)

Мы будем рассматривать этих двух пользователей чисто в плане прав, дабы исключить пакости, хотя у нас и так все по уму - все запросы формируются и инициализируются сервером. Все вроде бы Ок - пользователей я подключаю с привилегиями второго пользователя БД, а сам работаю со своими. Но ведь в этом случае база то мертвая будет. Что для меня означают мои посетители - учет, статистика и прочее, что позволяет реагировать на запросы/интересы, а значит процветать сайту. А что значит статистика, это значит слежение за пользователем - запись/обновление и т.п. Вот и получится, что для обслуживания одного запроса с привилегией SELECT придется открывать/закрывать различные соединения с БД, и если простой запрос на выборку зависит от иных данных, которые доступны только для соединения с расширенными привилегиями, то нехилая нагрузка лишняя возникает. А в случае запросов извне, да еще запрос "зуб даю, все честно", это еще и потенциальная очень опасная дыра.

ГеннадийС 27.04.2018 16:22

Это относится к любому сайту. Тут нет особенностей.

ГеннадийС 05.05.2018 11:51

Цитата:
laimas написал:
---------------------------------
Да и вообще. Пусть я имею двух пользователей БД, одного с правами как администратора, а второго только для выборки из БД. То, что тело запроса формируемое на клиенте разгружает сервер, это полнейший бред, о чем и полемизировать не стоит. А то, что в этом случае сервер лишен возможности фильтровать данные извне, что он обязан делать, есть предпосылка к большим неприятностям, это факт, и шифрование, еще не есть гарантия. Иное доказывайте школьникам, кому угодно, мне не надо.
-------------------------------------------------------------------
Я разочарован уровнем обсуждения. Зачем Вы мне описываете то, о чём я и так знаю? Я знаю, что злоумышленник имеет специальный браузер или самописное программное обеспечение, которое даёт возможность отправлять на сервер произвольные запросы.

И я уже писал, что ограничитель доступа не даст превысить уровень доступа.

Экономия в следующем: сервер обслуживает много клиентов и если сократить количество интерпретаторов, работающих на нём, то будет очень существенная экономия производительности.

Белый шум 05.05.2018 14:58

Цитата:

Сообщение от ГеннадийС
Экономия в следующем: сервер обслуживает много клиентов и если сократить количество интерпретаторов, работающих на нём, то будет очень существенная экономия производительности.

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

Даже наоборот, вы даёте простую возможность положить сервер DoS атакой через формирование сложных и долгих запросов без индексов.

ГеннадийС 05.05.2018 22:12

Белый шум, так Вы считаете, что база данных выполнит сложный запрос с большими затратами ресурсов, чем если этот сложный запрос заменить простыми и сделать эти простые запросы с помощью php? Что-то не верится.

Белый шум 05.05.2018 23:01

Я не верю, а знаю - если вы принимаете произвольные SQL-запросы от кого угодно, то можно составить такой запрос. Разумеется, это на реальных данных, а не тестовой БД с одной таблицей в 3 строки и двумя столбцами.

ГеннадийС 06.05.2018 08:27

Засорили интересную тему бесполезной чушью.

То есть разработчики баз данных такие беспомощные, что не могут разбить сложный запрос на простые и выполнить их быстрее, чем выполнение таких же запросов, поступивших от php?

Белый шум, тут очевидное логическое противоречие. Зачем вы участвуете в этом обсуждении? Только отвлекаете от основной темы.

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

И тестовая база данных у меня из 10 таблиц, в которых сотни и тысячи тестовых данных.

Белый шум 06.05.2018 09:49

Да я уже понял что зря вступил в разговор с теоретиком...


Часовой пояс GMT +3, время: 07:35.