Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2018, 20:13
Интересующийся
Отправить личное сообщение для lerneree Посмотреть профиль Найти все сообщения от lerneree
 
Регистрация: 10.11.2013
Сообщений: 16

Долой backend! Все делаем на javascript в frontend.
Все мы прекрасно знаем, что есть frontend и backend, программирование на стороне клиента и сервера. Чаще всего для создания вебсайта требуются специалисты по mysql, php, javascript, html, css. Многовато будет. Вот хотя бы избавиться от пары языков например php и sql. Без sql не обойдешься, но по крайней мере можно ограничиться самым минимальным набором команд, как делает facebook, у них запросы самые простые ключ-значение.
Далеко не каждыЙ программист знает как работает жесткий диск и что влияет на время выполнения запроса, сложный sql запрос может оказаться очень медленным.
От php уже избавился node.js, но он работает только со своим сервером и специалистов не так много и они дорогие. Когда вся функциональность находится в одном месте это значительно упрощает сопровождение программы.
Хотелось бы иметь такую систему:
1 программирование происходит на стороне клиента, возможно с использованием frameworks
Angular (2,1), React, Vue.js, Ember, Meteor.
2 используется обычный хостинг или сервер. Фактически программист может даже не знать о серверной стороне, для него процессор оперативная память и диск сервера это всего лишь расширение браузера.
Сделать это совсем не трудно с помощью ajax. Но защититьjavascript код принципиально не возможно так что система получается неприемлимой с точки зрения безопасности. Можно использовать препроцессор, писать все на javascript, а потом генерировать код на php (или другом языке). Препроцессор может делать много других полезных вещей:
1 Проверять качество javascript, html, css кода.
2 Проверять комментированность кода и вообще соблюдение принятого корпоративного стандарта программирования
3 Проверять защищенность от sql инекций и cross site scripting.
4 Генеририровать автоматическую настройку на размер экрана.
5 Генерирвать простейшую мобильную версию.
6 Оптимизировать скорость загрузки страницы. Например удалять из js библиотек (jquery, angular и тд) не используемые функции, выполнять загрузку по мере просмотра страницы. Очень эффективно также сначала загружать относительно небольщие изображения худшего качества, например, меньшего разрешения или в формате gif .
Выглядит система примерно:
так программист на js имет набор операторов обращения к памяти сервера: оперативной ,
файлам на диске, базам данных, журналируемым хранилищам (redis, memcached). Можно вообще каждой переменной, массиву и объекту js поставить в соответствие переменную, массив или объект на серверной стороне с таким же именем. Те чтобы серверная часть была как можно менее заметна.
Кое что в этом направлении уже сделано:
Javascript parser, compiler and interpreter written in PHP
http://sstur.github.io/js2php/demo/
https://github.com/jakubkulhan/js2php

Хотелось бы знать Ваше мнение по всему выщемзложенному.
Предлагаю основать open source проект и разработать такую систему.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2018, 21:00
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Хорошая шутеичка братан =)
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2018, 14:31
Интересующийся
Отправить личное сообщение для lerneree Посмотреть профиль Найти все сообщения от lerneree
 
Регистрация: 10.11.2013
Сообщений: 16

отвечай по существу братан.
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2018, 10:08
Интересующийся
Отправить личное сообщение для ГеннадийС Посмотреть профиль Найти все сообщения от ГеннадийС
 
Регистрация: 27.04.2018
Сообщений: 26

Согласен с этим мнением. Я даже пытался написать интерфейс к базе данных исключительно на javascript. На сервере был лишь транслятор запросов в базу данных, ограничитель доступа и база данных.

Правда я не очень хорошо представляю себе уязвимости такого сайта. Это действительно опасно показывать публично, как формируются запросы в базу данных и названия таблиц и полей? Ведь допущенные пользователи и так могут получить информацию из базы данных, а хакер даже зная названия таблиц и полей, не узнает пароль.
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2018, 10:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ГеннадийС
а хакер даже зная названия таблиц и полей, не узнает пароль.
А зачем пароль? Атакующий тот же пользователь, а подключение к базе от имени владельца. Но в случае формирования запросов сервером пользователю даже структура таблиц неизвестна, а в случае формирования запросов клиентом, вы не то что структуру вываливаете на общее обозрение, но еще и связи.
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2018, 10:20
Интересующийся
Отправить личное сообщение для ГеннадийС Посмотреть профиль Найти все сообщения от ГеннадийС
 
Регистрация: 27.04.2018
Сообщений: 26

Без пароля не выйдет получить данные. А что даст знание структуры?

Я не очень хорошо знаком с хакерскими атаками на базы данных.
Ответить с цитированием
  #7 (permalink)  
Старый 27.04.2018, 10:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Страшна SQL инъекция, а для ее предотвращения входные данные которые являются параметрами запроса обязательно подвергают фильтрации, их экранируют и т.п., что исключить подстановку в запрос запроса от атакующего.

В случае если клиент формирует запросы, о какой фильтрации может идти речь? А как быть с закрытыми для пользователей разделами, доступами и правами, запрос к этим данным тоже клиенту формировать?

В сети полно описания об инъекциях баз данных, читайте например на хакер.ру.
Ответить с цитированием
  #8 (permalink)  
Старый 27.04.2018, 10:57
Интересующийся
Отправить личное сообщение для ГеннадийС Посмотреть профиль Найти все сообщения от ГеннадийС
 
Регистрация: 27.04.2018
Сообщений: 26

Пароль владельца сайта неизвестен пользователю. У него свой пароль. Ограничитель доступа получает запрос от javascript с паролем пользователя и его логином. Дальше он получает из базы данных сведения о правах данного пользователя и ограничивает выдачу. Таким образом, хакер не сможет получить пароль владельца сайта. Вообще то хакер не сможет получить и пароль пользователя, если он не является пользователем сам.
Ответить с цитированием
  #9 (permalink)  
Старый 27.04.2018, 11:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Вы путает мух с котлетами.
Ответить с цитированием
  #10 (permalink)  
Старый 27.04.2018, 11:21
Интересующийся
Отправить личное сообщение для ГеннадийС Посмотреть профиль Найти все сообщения от ГеннадийС
 
Регистрация: 27.04.2018
Сообщений: 26

У нас с Вами взаимонедопонимание. Я не предлагал отказываться от ограничения доступа. Эта функция обязательна. Многим нужен многоуровневый доступ пользователей к базе данных. Разные группы пользователей могут выполнять разные запросы и получать доступ к разным данным. Эта функция обязательна. Правами root пользуется только ограничитель доступа.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37