passshift
@passshift
php, js, html5, css

Как безопасно передать переменную Ajax-скрипту?

Здравствуйте!

Скажу сразу, в Jquery и Ajax понимаю лишь поверхностно, могу перебрать чужой скрипт, немного дополнить, но никак не написать свой.

Сейчас прикрутил мульти-загрузчик изображений фотографий, суть в том что юзер загружает свои фотографии пачкой в определенный альбом, при успешной загрузке данные заносятся в отдельную таблицу бд:

ID | IMG
ID - идентификатор альбома
IMG - название файла

Соответственно есть еще одна таблица с альбомами где уже каждый альбом принадлежит конкретному юзеру.

Вопрос в следующем: Как мне безопасно передать ID альбома Ajax скрипту чтобы защититься от подмены значения?

В данный момент передаю ID в скрытом поле input, работает, но совершенно небезопасно.

Как вариант можно делать дополнительный запрос к БД перед загрузкой файла, в котором проверять есть ли такой альбом и действительно ли он принадлежит данному юзеру - насколько правильно будет так сделать?

С Уважением.
  • Вопрос задан
  • 2406 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Как вариант можно делать дополнительный запрос к БД перед загрузкой файла, в котором проверять есть ли такой альбом и действительно ли он принадлежит данному юзеру - насколько правильно будет так сделать?

Только так и будет правильно. ВСЕГДА осуществляйте валидацию входящих данных на сервере.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Sali_cat
Можно передавать ключ и записывать его в бд а потом проверять, как вариант.
Токен, почти тоже самое, но это сэкономит ресурсы и время... просто в берешь 1ну переменную и в нее заталкиваешь: id что-то еще и сам токен. Ну и после просто проверить или расшифровать, можно улучшить, добавить 1ну переменную что бы она писалась в бд а после сверялись. Честно говоря вариантов куча, но легче взломать чем защитить.
Ответ написан
@iru
php dev
Можно держать токен пользователя в БД и в Сессии или куках, и при каждом запросе проверять его валидность.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы