Ошибка безопасности при инвайте в группу. в чем дело?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RedFern.89, 1 Mar 2010.

  1. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    накаталд функцию для инвайта в группу по кукам. В ответе от сервера вываливается ошибка безопасности. В чем же может быть дело? оО


    Code:
    function InviteGr(id, gid, sid: string): string;
    var
     HTTP : TidHTTP;
     hash : string;
     Temp : string;
     Page : TStringList;
     Post : TStringList;
     Cook : TidCookieManager;
     I    : Integer;
    begin
     HTTP := TidHTTP.Create(nil);
     Cook := TidCookieManager.Create(nil);
     Page := TStringList.Create;
    
     Cook.AddCookie('remixsid=' + sid, 'vkontakte.ru');
     Cook.AddCookie('remixchk=5;', 'vkontakte.ru');
     Cook.AddCookie('remixclosed_tabs=0;', 'vkontakte.ru');
     Cook.AddCookie('remixlang=0;', 'vkontakte.ru');
     Cook.AddCookie('remixgroup_closed_tabs=0;', 'vkontakte.ru');
     Cook.AddCookie('audio_vol=52', 'vkontakte.ru');
    
     HTTP.Request.Referer := 'http://vkontakte.ru/club' + gid;
     HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 MRA 5.6 (build 03278) Firefox/3.6 sputnik 2.1.0.18';
     HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
     HTTP.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
     HTTP.Request.Connection := 'keep-alive';
     HTTP.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
     HTTP.Request.Pragma := 'no-cache';
     HTTP.Request.CacheControl := 'no-cache';
     HTTP.Request.Host := 'vkontakte.ru';
     HTTP.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
     HTTP.Request.CustomHeaders.Add('X-Requested-With: XMLHttpRequest');
    
     HTTP.CookieManager := Cook;
     HTTP.AllowCookies := True;
     HTTP.HandleRedirects := True;
    
     Page.Text := HTTP.Get('http://vkontakte.ru/club' + gid);
    
     for I := 0 to Page.Count -1 do
     begin
       If Pos('act=a_invite_friends', Page[i]) <> 0 Then
       begin
         hash := Page[i];
         ShowMessage(hash);
         hash := Copy(hash, Pos('decodehash', hash) +12, Length(hash));
         Delete(hash, Pos(#39, hash), Length(hash));
       end;
     end;
    
     Post := TStringList.Create;
     Post.Add('friends=' + id);
     Post.Add('gid=' + gid);
     Post.Add('hash=' + DecodeHash(hash));
    
     Temp := HTTP.Post('http://vkontakte.ru/groups_ajax.php?act=a_invite_friends', Post);
    
     Post.Free;
     Page.Free;
     Http.Free;
     Cook.Free;
    end;
    
     
  2. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Приведи тело и заголовки ответа
     
  3. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    Заголовки:
    Code:
    HTTP/1.1 200 OK
    Server:nginx/0.7.59
    Date:Mon, 01 Mar 2010 18:57:44 GMT
    Content-Type:text/html; charset=windows-1251
    Connection:keep-alive
    X-Powered-By:PHP/5.2.6-1+lenny3
    Pragma:no-cache
    Cache-control:no-store
    Vary:Accept-Encoding
    Content-Length:32
    
    Тело:
    Code:
    {"error":"Ошибка безопасности."}
    
     
  4. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    http://yavkontakte.ru/kody-oshibok-vkontakte-otvety-kontakty-pri-zapretax.html тут посмотри, список всех ошибок вконтакте
    и ты кстати забыл в try finally функцию обернуть
     
  5. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    так блин. Там все ошибки связанные с blank.php а try...finally пока подождут... так что не так?
     
  6. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    скорее всего что то где то пропустил, или эта ошибка просто не систематизирована в вк
    у меня нет функции DecodeHash, проверить у себя не могу
     
  7. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    я сравнивал хэш со страницы и с проги. оба декодированные. совпадают полностью.
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    ау!! народ! в чем там дело? о_О приведу код DecodeHash, если вы в нем сомниваетесь)

    Code:
    function DecodeHash(chas: string): string;
    var
     Decchas : string;
     str : string;
     I : Integer;
     Len : integer;
    begin
    
     str := Copy(chas, 6, 12);
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
      Decchas := Decchas + str[len];
      Inc(len, -1);
     end;
    
     str := Copy(chas, 21, Length(chas) -5);
     str := str + Copy(chas, 5, 1);
    
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
       Decchas := Decchas + str[len];
       Inc(len, -1);
     end;
    
     Result := Decchas;
    end;
    
    
     
  9. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ты не так понял.
    Я не сомневался в decodehash, я вообще не знаю что это за функция и для чего она нужна, я говорил о том что проверить не могу, потому что у меня ее нет.

    Так, а ты на разных группах тестил? На открытых тоже?

    Вот например у тебя строку act=a_invite_friends находит даже когда нет ссылки на приглашение друзей, надо дополнительно проверять возможность приглашения в группу.

    Так, и еще ты не написал когда именно происходит ошибка, в 1-ом или 2-ом запросе.
     
    #9 GhostOnline, 2 Mar 2010
    Last edited: 2 Mar 2010
  10. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    я уже разобралсо) оказывается на приглашения "не друзей" нужны совсем другие параметры))
     
  11. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    а функция DecodeHash нужна для безопасности )))