Проблема безопасности jQuery

#javascript #jquery #security

#javascript #jquery #Безопасность

Вопрос:

Я боюсь решения, которое я использую в одном из своих приложений. В принципе, я использую этот фрагмент :

 var username = ...;
$.ajax({
type: "POST",
    url: "getFeed.php",
    data: "username=" username,
    success: function(html) {
    // do the stuff         
    }
});
  

Мой вопрос: это можно взломать? Если вы используете встроенный редактор кода chrome / firefox / … и замените var username = ... на var username = 'user1'; , будет ли это работать?

Спасибо

Комментарии:

1. вы можете вставить свой код прямо в консоль и нажать play

2. Возможно, использование какого-либо токена также улучшит вашу безопасность.

3. Проверка всегда должна выполняться на стороне сервера (также)

4. Я никогда не доверяю значениям в javascript. Всегда проверяйте серверную часть, если есть что-то, что требует определенного уровня безопасности.

5. Также не создавайте свои данные вручную. Вместо этого передайте объектный литерал data параметру: data: { username: username }

Ответ №1:

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

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

Комментарии:

1. Любой тип данных, подобных этому, должен быть проверен / защищен на стороне сервера, а не на стороне клиента.

2. Это то, что я подумал, я думаю, что я перейду на серверную безопасность, основанную на токенах, это было довольно очевидно.