глобальные переменные javascript - защита - PullRequest
3 голосов
/ 17 ноября 2011

Я использую некоторые глобальные переменные в веб-приложении, построенном на Html / Javascript. Я использую эти переменные на страницах (или их части), и иногда они используются в качестве данных поста для вызовов ajax. Мой вопрос: насколько это безопасно? Конечно, я могу установить разные значения для этих переменных (например, с помощью консоли), а затем сделать вызовы, которые зависят от этой переменной. Представьте, что пользователь устанавливает некоторый идентификатор, соответствующий тому, к чему у него даже нет доступа.

Как это сделать?

Заранее спасибо

Ответы [ 3 ]

7 голосов
/ 17 ноября 2011

В этом нет ничего отличного от любого веб-приложения с точки зрения безопасности.

Все, что отправлено из браузера, должно рассматриваться сервером как недоверенное.Это включает в себя параметры URL, данные постов формы, файлы cookie, заголовки http и все, что контролируется JavaScript.Все эти элементы могут быть использованы злоумышленником.

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

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

1 голос
/ 17 ноября 2011

если вы используете jquery, вы можете использовать $. Данные ()

При этом вы можете связать данные с элементом, поэтому неавторизованный пользователь не сможет получить к ним доступ

0 голосов
/ 17 ноября 2011

Javascript имеет идентификацию типа во время выполнения (все это var как visual basic), это свободно типизированный язык.

Javascript имеет свою собственную модель безопасности, хотя

  1. Пользователь не может получить доступ к файлам (запись / запись)
  2. Он не может получить доступ или посмотреть местоположение пользователя, файлы, открыть окна без запроса и т. Д.

Невозможно защитить источник вашего файла javascript или даже pwd, защищая его, так как это лучше сделать на стороне сервера.

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

Хуже того, JavaScript может самоизменяться во время выполнения - и часто делает. Это означает, что угроза безопасности может отсутствовать в синтаксисе или коде при доставке клиенту, но может появиться после выполнения сценария.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...