Joomla 1.5 josSpoofCheck - Для джумлы 1.5.x

Тема в разделе "Программирование", создана пользователем yAnTar, 19.09.2008.

  1. Offline

    yAnTar Недавно здесь

    Регистрация:
    14.04.2006
    Сообщения:
    4
    Симпатии:
    0
    В Joomla 1.0.x были функции
    josSpoofCheck i josSpoofValue.

    Здесь нашел, что
    josSpoofValue в Joomla 1.5.x заменяется конструкцией JUtility::getToken()
    а
    josSpoofCheck() - deprecated, solution now included in JSession.
    Не нашел в JSession решения. Покопался в плагине легаси_моде нашел функцию
    Код (CODE):
    1. function josSpoofCheck( $header=false, $alternate=null )
    2. {
    3.     // Lets make sure they saw the html form
    4.     $check = true;
    5.     $hash   = josSpoofValue($alternate);
    6.     $valid  = JRequest::getBool( $hash, 0, 'post' );
    7.     if (!$valid) {
    8.         $check = false;
    9.     }
    10.  
    11.     // Make sure request came from a client with a user agent string.
    12.     if (!isset( $_SERVER['HTTP_USER_AGENT'] )) {
    13.         $check = false;
    14.     }
    15.  
    16.     // Check to make sure that the request was posted as well.
    17.     $requestMethod = JArrayHelper::getValue( $_SERVER, 'REQUEST_METHOD' );
    18.     if ($requestMethod != 'POST') {
    19.         $check = false;
    20.     }
    21.  
    22.     if (!$check)
    23.     {
    24.         header( 'HTTP/1.0 403 Forbidden' );
    25.         jexit( JText::_('E_SESSION_TIMEOUT') );
    26.     }
    27. }

    Изменил строку
    Код (CODE):
    1. $hash   = josSpoofValue($alternate);

    на строку
    Код (CODE):
    1. JUtility::getToken()

    работает, но как то не красиво - в код вставлять такую большой кусок (15 строк) с тела функции, неужели нет статического метода, который проверяет это.
    В классе JSession подходящего метода не нашел.
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
    Ни разу за эти несколько лет что тыркаюсь в джумле даже в голову не пришло воспользоваться этой функцией :)
     
  4. Offline

    yAnTar Недавно здесь

    Регистрация:
    14.04.2006
    Сообщения:
    4
    Симпатии:
    0
    2 Dead Krolik
    Я тоже этой функций не пользовался, но затачивал докмен (в докмене это используется для проверки от спама) для джумлы 1.5 без легаси моде, там была проверка. Не захотел убирать эту проверку, а захотел разобраться, как в 1.5 это работает.
    Так и не разобрался. :( Пришлось кусок функции копипастить.
     
    Последнее редактирование: 20.09.2008
  5. Offline

    yAnTar Недавно здесь

    Регистрация:
    14.04.2006
    Сообщения:
    4
    Симпатии:
    0
    Случайно нашел здесь
    Код (CODE):
    1. JRequest::checkToken();
     

Поделиться этой страницей

Загрузка...