За последние 24 часа нас посетили 50850 программистов и 1689 роботов. Сейчас ищут 1017 программистов ...

защита при работе с AJAX

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ensiferum, 3 фев 2011.

  1. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    пишу CRUD с AJAX (jQuery). Всё красивенько, но задался вопросом безопасности. В частночти у каждого пользователя свои странички (связь через соответствующее поле в таблице БД). При передаче id страницы в явном виде id светится, что не есть гуд. думаю, можно сделать запрос с подменой этого id и, скажем, удалить чужую страницу. Пока сделал так, что для каждой страницы в БД есть поле с уникальным хешем, и именно по хешу происходит идентификация страницы.

    Норм способ защиты? Как ещё можно защититься?

    Кто-то, скажем, палит заголовок, но и его по идее можно подделать.
     
  2. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    а авторизации у тебя нету?
     
  3. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Костян
    есть. на кукисах
     
  4. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Ensiferum
    ну и всё, если чувак имеет куки, которые идентифицируют его, что он может удалить это иди, то пусть удаляет, иначе - нет прав...
     
  5. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    я понимаю, что это РЕСТ но ты можешь куки сделать как параметр а не как куки, чтобы отвечать требованиям РЕСТ
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Ensiferum
    Обычно при удалении проверяется принадлежит ли эта страница данному пользователю. Если да - удалить, если нет - выдать ошибку прав доступа
     
  7. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    не, вопрос вот какой:

    скажем, адрес AJAX-запроса выглядит так "ajax.php?act=deleteitem&id=24". Скажем, такая ссылка вылезла лишь у одного человека (хозяина страницы). Что ему мешает сделать запрос "ajax.php?act=deleteitem&id=25", удалив страницу, не принадлежащую ему? Сейчас у меня запросы такого вида "ajax.php?act=deleteitem&id=24&hash=123abc654def321456987456321456ab". Обработчик ищет запись у которой id=24 и hash=123abc654def321456987456321456ab и удаляет его.

    Как через AJAX идентифицировать пользователя, чтобы он мог удалить и работать только с тем, что принадлежит ему?
     
  8. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Ensiferum
    Ну вобще-то в AJAX запрросах куки тоже передаются, следовательно у тебя есть сессия пользователя. Проверяем, пренадлижит ли страница ему и удаляем, если true
     
  9. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    понятно
     
  10. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Ensiferum
    Просто РЕСТ подразумевает, что данные, идентифицирующие пользователя передаются в теле запроса, а не в куках ибо с рестом может работать ПО которое не сохраняет куки..
     
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Костян
    С таким ПО только какие-то параметры-ключи. Или не давать делать определённые действия без авторизации. Т.е. типа смотреть можно, а удалить извольте авторизоваться и получить ключ сессии.
     
  12. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Psih
    ну да, только ключ сессии должен передваться не в куках а в параметрах запроса, судя из регламента РЕСТ
     
  13. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Костян
    Угу, это я и иммел ввиду. Можно его ставить кукой, если куки поддерживаются. Хотя конечно лучше параметры просто передавать.
     
  14. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    А где про это можно почтитать?