Закрыть от других

Тема в разделе "Как сделать...", создана пользователем vanderv, 7 май 2012.

  1. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Есть php файл на который приходит ajax запрос. Этот файл формирует важную инфу. Как обезопасить себя от других запросов? А то получится что любой желающий может кинуть запрос через curl. На сколько я знаю ajax запросы на другой домен посылать нельзя, поэтому смотрю в эту сторону.
     
  2. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    624
    Симпатии:
    1.379
    Можно подделать refferer, подделать практически любые другие данные.
    Рекомендую проверять $_SERVER['remote_addr'] и дополнительно использовать динамические хеши с заранее обусловленной солью.
     
    latteo нравится это.
  3. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Сессию проверять?
     
  4. neodev

    neodev Создатель

    Регистр.:
    26 мар 2012
    Сообщения:
    24
    Симпатии:
    4
    Код:
    start_session();
    $md5 = md5( "!(*?:*?:@##@%^" . microtime() . unqid() );
    $_SESSION['hash_sec'] = $md5;
    $sess= md5($_SERVER['remote_addr'] . $md5 );
    HTML:
    ./ajax.php?sess={$sess}&param=value&...
    Код:
    start_session();
    if( md5( $_SERVER['remote_addr'] . $_SESSION['hash_sec'] ) != $_REQUEST['sess'] ) die('Session error');
    + ко всему этому еще и куку прилепить...
     
  5. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Про сессию с своей солью, правильное решение.
    Но обычно очень важная информация генерируется только для зарегистрированных пользователей сайта, не проще ли проверять авторизацию при отправлении запроса?
     
  6. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Но никто не мешает аяксом обратиться к своему скрипту, который уже отправит запрос на другой домен. А в общем уже правильно записывать в сессию + куки.
    И конечно закрыть доступ для гостей.
     
  7. UrSergeev

    UrSergeev Постоялец

    Регистр.:
    24 май 2012
    Сообщения:
    109
    Симпатии:
    8
    здесь только хорошая проверка входных данных и проверка доступа(пользователя) больше особо не придумаешь, можно конечно IP, Url, page и т.д., но это, если кто захочет мало чем поможет.