За последние 24 часа нас посетили 222068 программистов и 2182 робота. Сейчас ищут 1727 программистов ...

на суд

Тема в разделе "PHP для новичков", создана пользователем bookin, 1 фев 2010.

  1. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    появился такой вопрос, я создаю сессию с id к примеру, может ли злоумышленник отредактировать сессию изменив в нем id ??
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Сам или стандартными средствами PHP?

    Изменить переменные сессии юзер не может.
    А вот изменить id сессии (который лежит в куке или передается в url) юзер может. При удачном (для злоумышленника) стечении обстоятельств он может подключится к "чужой" сессии, в том числе, например, к сессии администратора.
     
  3. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    может подскажите у меня после активации аккаунта через мыло, переводит на страницу для заполнения информации о челе, передовая через get id пользователя что бы знать кому инфу запихать, но ведь в url можно изменить id и тогда инфа запишится другому, как можно проверить тот ли пользователь заполняет инфу ??
     
  4. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Можно писать что-нибудь в куку. И проверять по ней и id.

    А вообще возникает 2 вопроса
    1) Насколько сложно подобрать этот id?
    2) Зачем оно все? Ваш сервис настолько хорош/позволяет достаточно заработать денег что кому-то захочется производить подобную подмену?
     
  5. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    отвечая на вопросы:
    1) а в чем разница, если про100 человеку захотелось побаловатся, он изменил в url id и изменил комута инфу.
    2)нет сервис пока не хорош, и в данный момент я не гонюсь за деньгами, я гонюсь за знаниями, я хочу учесть сразу по максимуму факторов что бы в дальнейшем у меня не возникало данных вопросов и не возникало проблем из-за не учета этого момента

    так куда лучше записать в сессию или в куки?? что бы в дальнейшем сравнить с url
     
  6. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    bookin - (если про почту)передавай не айди а хеш какой-нить а на сервере храни соответствие айди и хеша по которому будешь узнавать айди ...
    если ты боишся передавать в ссылке айди на самом сайт е... то там просто достаточно держать в аутентификации инфу об айди к которому пользователь имеет доступ ..
     
  7. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    я на мыло не передаю id, а вот после того как юзер с мыла переходит по ссылке то он пападает на страницу откуда осуществляется тут же переход на другую с параметром id, де он заполняет инфу о себе, но ведь он может изменить гет запрос и тогда изменит чужому инфу, вот как узнать тот же это юзер заполняет или кто то левый
     
  8. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Защита и средства (время, деньги) пущенные на нее должны соответствовать защищаемому объекту. Если этот id дает доступ к финансам клиента, то конечно же защита должна быть максимальной. Если же доступ предоставляется к страничке редактирования профиля на форуме, то защиту можно сделать слабее.
    Почему?
    1) Для экономии своего времени.
    2) Для экономии денег заказчика (хотя если он платит, то почему бы не заработать побольше)
    3) Повышенная защита обычно доставляет дополнительные неудобства пользователю. Пользователь согласиться пройти еще одну проверку в случае чего, если это связно с его деньгами, однако подобная защита на обычном форуме может отпугнуть пользователя.
    4) Чем менее ценный объект защищается, тем меньше народу захотят до него добраться, и тем меньший уровень защиты нужен чтобы их остановить.
    К чему я это все? Не надо увлекаться.
    Хотя простые средства защиты от известных атак реализовать стоит.

    В куку. Сессия умрет с закрытием браузера. А вдруг пользователь захочет воспользоваться этим id завтра?
    Причем писать надо не этот id, а еще какое-то уникальное значение. А когда пользователь перейдет по ссылке из email'а, тогда по куке проверить - тот ли пользователь пришел.
     
  9. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    гм .. а зачем перекидываешь на айди ?

    можешь просто идентифицироваться пользователя по логину паролю а потом уже позволять редактировать ... в принципе ты можешь запомнить пользователя и по хешу (описанно выше) и соответственно знать к какому айди он имеет доступ а к какому нет ... (тривиальная задача удержать данные о пользователе и по ним давать доступ)
     
  10. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    id у меня это обычный счетчик в таблице, по этому подобрать его,я думаю, не трудно, или такое решение не есть правильным??

    а если пользователь захочет воспользоваться этим id через время но с другого компьютера?? я понимаю создания кукисов при авторизации, но вот при регистрации, он перейдет по ссылке я оставлю куки на компе, он закроет браузер и уйдет, затем с другого компа перейти по ссылке уже не удастца, так как уже активирован акк, и ему придется авторизовываться и там уже через страницу редактировать инфо, тогда при входе создавать кук и проверять, но куки останутся на двух компах.

    или может я что то не так себе представляю??
     
  11. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    может кто подскажет

    есть функция
    [js]
    $(function() {
    $("ul.tabs").tabs("div.panes > div");
    // if the function argument is given to overlay, it is assumed to be the onBeforeLoad event listener
    $("a[rel]").overlay(function() {

    // grab wrapper element inside content
    var wrap = this.getContent().find("div.wrap");

    // load only for the first time it is opened
    if (wrap.is(":empty")) {
    wrap.load(this.getTrigger().attr("href"));
    }
    });
    });[/js]



    первая строка функции отвечает за создания вкладок, последующие за вывод модального окна, если убрать создания вкладок строку, то модальное окно появляется как надо с фоном, по центру и т.д., но если оставлять то оно появляется дет с боку без фона короче ужасно, подскажите в чем может быть проблема, и если можно то на языке детей, то я к изучению js еще не приступил =(
     
  12. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    уже разобрался)
     
  13. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    может кто подскажет
    есть форма на ней кнопка "выбрать аватар" открывается модальное окно и в нем выводится скрипт который отображает из папок картинки, как осущиствить что бы при нажатии на картинку закрывалось модальное окно и на форме отображалась выбранная картинка и в переменную передавался путь к ней что бы в дальнейшем занести в базу, плиз срочно нужно, то не могу дальше продвинутся((
     
  14. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Размещаем где-нить на странице или в прилинкованном файле жава-скриптик:
    [js]function openModal(url) {
    my=window.open(url, 'ModalWindowName','resizable=yes,toolbar=no,width=680,height=620,status=no,scrollbars=yes, top=150,left=10');
    my.focus();
    }
    [/js]

    затем у баттона:
    HTML:
    1. <submit type='button' value='Choose avatar' onclick='openModal("url_to_script");'/>
    во-вторых, надеюсь ты осознаешь, что показать картинки с компа пользователя тебе ни один браузер не позволит?
     
  15. bookin

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

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    engager спс конечно но само модальное окно у меня есть и картинки там выводятся, вопрос в том как сделать что бы при нажатии на картинку модальное окно закрылось а в скрипте который вызывал модальное окно без перезагрузки передался путь картинки и отобразилась сама картинка, может кто хоть направит в какие функции втыкать, но повторюсь в js я вообще дуб дубом =)