2013-08-18 3 views
2

Предположим, у меня есть var, сгенерированный на лету (например, вызов API Facebook, который возвращает идентификатор пользователя). Затем я хочу отправить этот var на свой собственный сервер, используя jQuery AJAX.Безопасность: сообщения AJAX

Мой вопрос - это безопасно? Может ли кто-то перехватить и вставить свое значение до отправки AJAX на мой сервер? Если это не безопасно, как делать такие сообщения AJAX?

ответ

0

Да, кто-то может перехватить его и изменить значение, если вы не используете HTTPS. Таким образом, это будет в основном решением для обеспечения безопасности, а также некоторой системой аутентификации. Кроме этого, убедитесь, что вы не храните ничего секретного в этом var, так как ваши пользователи могут легко увидеть его значение.

+0

Спасибо за это - но как HTTPS это изменить? Как это может помешать пользователям изменять данные POST AJAX на лету? – user1775598

+0

HTTPS не запрещает пользователям изменять данные POST - это только прекратит ДРУГИЕ люди от возможности захватить его и изменить. Вот почему вам нужна система аутентификации и, вероятно, какая-то система разрешений - тогда, если пользователь изменяет значение на что-то еще, вы можете разрешить им использование этого ресурса, а если они не авторизованы, то вы будете отвечать на запрос 401/403 вместо 200. –

0

Может кто-то перехватывать и вставить свою ценность перед AJAX отправляется на мой сервер?

Это зависит от того, кого вы подразумеваете под «кем-то».

Если вы говорите о нападающих третьей стороны, то точки возможного нападения являются:

  1. между сервером Facebook и браузером. Если у вас есть возможность использовать SSL для этого запроса, то это единственный способ защитить его там.
  2. Внутри браузера пользователя. Это требует, чтобы злоумышленник уже скомпрометировал компьютер пользователя. Вы ничего не можете с этим поделать.
  3. Между браузером и вашим сервером. Используйте SSL для защиты от этого.

Если вы говорите о пользователя браузера, то нет ничего, что вы можете сделать, чтобы остановить их изменения данных. Пользователь полностью контролирует то, что их браузер отправляет на ваш сервер. Единственная защита, которую у вас есть, - это удаление браузера из уравнения (что предполагает использование OAuth для получения разрешения на доступ к своей учетной записи Facebook с вашего сервера).