#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. Это то, что я подумал, я думаю, что я перейду на серверную безопасность, основанную на токенах, это было довольно очевидно.