Алексей POS_troi: я основы знаю :) почему нигде не написано о том, как сделать сайт полностью на ajax? идиотские примеры, как отправить данные из формы, показать прогресс и т.п., понятны и ежу. есть у меня сервер с API, надо написать клиентскую часть на ajax'е, какая структура должна быть? Конкретики бы побольше..
Спасибо, но к моему вопросу это не очень подходит. Я хочу понять, как спроектировать такое приложение. Посмотрел на AngularJS..
Я не понимаю, как должна вести себя страница при обновлении, если все подгружается через AJAX, а логика в API.
D' Normalization: а вы в вузе не учились? за верстку после школы сразу взялись? до 3 курса выш.мат, матан, электроника, электротехника, физика, экономика, история, физкультура и, внезапно, 1 семестр "Основы ИБ". За 2 года должны профессию освоить, поэтому и интересуюсь сейчас, чтобы знать, на что особенно обратить внимание.
D' Normalization: опять вы свои бессмысленные комментарии пишете. Я прошу людей, которые разбираются в этой области, подсказать, какие именно навыки будут полезны. Всем известно, что бОльшая часть вузовской программы - никому не нужная чушь.
Дмитрий: По вашему, авторизация (и аутентификация) и REST - несовместимые вещи что ли? Или вы предлагаете каждый раз пару логин-пароль вместе с запросом отправлять? Вам не кажется, что это не совсем безопасно?
Виталий Пухов: API на php, RSA расшифровывает нормально. Клиент на c# wpf, шифрует тоже нормально.
Меня теперь интересует в каком формате запрос посылать :). Кучу полей с шифрованными значениями или один шифрованный объект, в котором каким то образом находятся все поля..
Виталий Пухов: Проблема в том, что если шифровать весь запрос, я в коде API не смогу обратиться к параметрам через $_POST['name']. Как тогда передавать запрос - заносить все в JSON, его шифровать, передавать, на сервере расшифровывать и читать их JSON-объекта параметры? Или лучше зашифровать каждый параметр по отдельности, типа:
name=RSA('Шурик')
login=RSA('mylogin')
pass=RSA('asdasd')
ну это я обобщил немного..
Давайте холивар не будем разводить, на том же хабре очень много споров было, можно ли использовать сессии в RESTful. Скажите тогда, как аутентификацию сделать?
D' Normalization: Такой механизм защищает от подделки запроса, а ваш - нет.
Перехватив token (кстати, для чего id и val?) и secret, можем лепить любые запросы.
Перехватив sign=RSA(sha256(pass+параметры)) мы не расшифруем строку, не имея закрытого ключа. Не зная пароля не сможем составить другой запрос.
А пароль можно украсть и в вашем, и в моем случае, от этого действительно ничего не спасет, только вот провайдер API в этом случае не будет виноват.
D' Normalization: Пароль известен только клиенту, тогда подойдет ли такой способ: к каждому запросу добавляем параметр sign=RSA(sha256(pass+все остальные параметры запроса)), на сервере расшифровываем закрытым ключом, хешируем и сравниваем. Если я правильно понимаю, то получить доступ к серверу теперь можно, только получив пароль кейлоггером или от пользователя, т.е. заразив его ПК или используя Соц.инж.?