защита от CSRF

Discussion in 'PHP' started by realcoder, 18 Jan 2012.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Проверять реферер же достаточно, зачем токены :O
     
  2. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    могут возникнуть проблемы для пользователей которые работают в интернете через какие-нибудь фаерволы или прокси сервера, которые блокируют этот заголовок.
    У меня например некоторое время вместо заголовка реферера отправлялась моя реклама (чтобы затесаться во всякие там google analitics вебмастеров)

    А еще токены защищают от повторной отправки F5

    Как уже сказали ранее, если есть пасивка, то реферер не поможет, а вот токен обойти кулхацкеры не смогут
     
  3. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    почему не смогут? если ты можешь внедрить код в страницу, можно просто нажать сабмит программно:
    document.forms[0].submit();
    типа:
    http://server.com/page.php?field="><script>document.forms[0].inputs[0].value="ololo";document.forms[0].inputs[1].value="trololo";...; document.forms[0].submit();</script>
     
  4. trololoman96

    trololoman96 Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    120
    Likes Received:
    34
    Reputations:
    55
    Можно пример реализации ?
     
  5. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    я же написал
     
  6. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    trololoman96, например так:
    PHP:
    xmlhttp = new XMLHttpRequest
    xmlhttp.open('GET',  
                
    'http://site.com/page.php'
                
    false); 
    xmlhttp.send(null);

    token = /name="token" value="(.+?)"/.exec(xmlhttp.responseText)[1];
     
    1 person likes this.
  7. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    realcoder, твой пример подразумевает что обе уязвимости на одной странице.

    я написал что кулхацкеры не смогут справится, а M_script например догадался что нужно сделать 2 ajax запроса - одним получить токен, а другим его отправить.
     
  8. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    а те кто с хрома болт забить могут)
     
  9. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    реферер подделать можно.вообще подтверждение запрашивать перед серьезным действием
     
    #29 barnaki, 20 Jan 2012
    Last edited: 20 Jan 2012
  10. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Можно, но тогда нужно будет передавать и куки.
     
  11. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    генерация униакльного значения и подстановка его во все формы
     
Loading...
Similar Threads - защита CSRF
  1. GAiN
    Replies:
    3
    Views:
    8,273