Чем пошарить в инете

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Чем пошарить в инете

Сообщение zub » 09.09.2017 20:04:31

Я просто хочу разобраться в общем, а не в vk.api.

Пока делаю выводы:
юзать fcl-web
логин+пошарить в вк задача не решаемая без браузера и без vk.api, а если и решаемая, будет требовать постоянной корректировки по любому чиху со стороны вк
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Чем пошарить в инете

Сообщение pupsik » 09.09.2017 20:14:06

я могу эти скрипты перегнать один раз на паскаль руками и использовать? или они настолько часто меняются что нужно их выполнять на js?
вы сами ответили на вопрос. Иногда часто, иногда нет. Был бы интерпретатор без костылей (возможно уже есть, не встречал открытых). Было бы замечательно.

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

Добавлено спустя 3 минуты 5 секунд:
кстати... по поводу fcl-web... бывают косяки. Иногда хм... весёлые. В транке.

Добавлено спустя 19 минут 41 секунду:
ну а для "побродить" попробуйте:
1. HtmlViewer.
2. Вариант IPro + IpHttpDataProvider.
3. lazbro.
4. fpbrowser.

Для примера хватит. CEF3 не забыл... но это уже не та песня :)
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Чем пошарить в инете

Сообщение zub » 10.09.2017 13:06:45

Переходим к практической части
Код: Выделить всё
program vktest;

uses classes,fphttpclient;

var
  client:TFPHTTPClient;
  Response:TStringList;

procedure writelist(list:TStringList);
var
  i:integer;
begin
  for i:=0 to list.Count-1 do
    writeln(list[i]);
end;

begin
  client:=TFPHTTPClient.Create(nil);
  client.AllowRedirect:=True;
  client.AddHeader('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 OPR/47.0.2631.71');
  Response:=TStringList.Create;
  client.Get('https://vk.com',Response);
  writelist(Response);
  Response.SaveToFile('response.txt');
  //readln;
end.

выдало
Код: Выделить всё
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="shortcut icon" href="/images/icons/favicons/fav_logo.ico?5" />

<link rel="apple-touch-icon" href="/images/safari_60.png?1">
<link rel="apple-touch-icon" sizes="76x76" href="/images/safari_76.png?1">
<link rel="apple-touch-icon" sizes="120x120" href="/images/safari_120.png?1">
<link rel="apple-touch-icon" sizes="152x152" href="/images/safari_152.png?1">

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="description" content="ВКонтакте – универсальное средство для общения и поиска друзей и одноклассников, которым ежедневно пользуются десятки миллионов человек. Мы хотим, чтобы друзья, однокурсники, одноклассники, соседи и коллеги всегда оставались в контакте." />


<title>Добро пожаловать | ВКонтакте</title>

<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>

  <link rel="stylesheet" type="text/css" href="/css/al/fonts_cnt.css?2889730895" />
  <link rel="stylesheet" type="text/css" href="/css/al/common.css?24644005087" />

<script type="text/javascript">
var vk = {
  ads_rotate_interval: 120000,
  al: parseInt('3') || 4,
  id: 0,
  intnat: '' ? true : false,
  host: 'vk.com',
  lang: 0,
  rtl: parseInt('') || 0,
  version: 3592157875078,
  stDomains: 0,
  zero: false,
  contlen: 12680,
  loginscheme: 'https',
  ip_h: 'be7b0a19a6a853c612',
  vc_h: 'b55c2c065b79146f2b87cf7916e2a3ed',
  navPrefix: '/',
  dt: parseInt('0') || 0,
  fs: parseInt('13') || 13,
  ts: 1505033927,
  tz: 10800,
  pd: 0,
  css_dir: '',
  vcost: 7,
  time: [2017, 9, 10, 11, 58, 47],
  sampleUser: -1, spentLastSendTS: new Date().getTime(),
  a11y: 0,
  statusExportHash: '',
  audioAdsConfig: {"_":"_"},
  longViewTestGroup: "every_view",

  pr_tpl: "<div class=\"pr %cls%\" id=\"%id%\"><div class=\"pr_bt\"><\/div><div class=\"pr_bt\"><\/div><div class=\"pr_bt\"><\/div><\/div>",

  audioInlinePlayerTpl: "<div class=\"audio_inline_player _audio_inline_player no_select\">\n  <div class=\"audio_inline_player_right\">\n    <div class=\"audio_inline_player_volume\"><\/div>\n  <\/div>\n  <div class=\"audio_inline_player_left\">\n    <div class=\"audio_inline_player_progress\"><\/div>\n  <\/div>\n<\/div>",

  tnsPixelType: 'unauth'
};

window.locDomain = vk.host.match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0];
var _ua = navigator.userAgent.toLowerCase();
if (/opera/i.test(_ua) || !/msie 6/i.test(_ua) || document.domain != locDomain) document.domain = locDomain;
var ___htest = (location.toString().match(/#(.*)/) || {})[1] || '', ___to;
___htest = ___htest.split('#').pop();
if (vk.al != 1 && ___htest.length && ___htest.substr(0, 1) == vk.navPrefix) {
  if (vk.al != 3 || vk.navPrefix != '!') {
    ___to = ___htest.replace(/^(\/|!)/, '');
    if (___to.match(/^([^\?]*\.php|login|mobile)([^a-z0-9\.]|$)/)) ___to = '';
    location.replace(location.protocol + '//' + location.host + '/' + ___to);
  }
}

var StaticFiles = {
  'common.js' : {v: 1154},
  'fonts_cnt.css' : {v: 2889730895},
'common.css': {v: 24644005087}
  ,'lang0_0.js':{v:6843},'index.css':{v:13857653478},'index.js':{v:3228561433},'login.css':{v:15707452649},'ui_controls.css':{v:14839603298},'ui_controls.js':{v:986646994},'ui_common.js':{v:2554866735},'ui_common.css':{v:16399920764},'audioplayer.js':{v:5985822551}
}
var abp;
</script>

<link type="text/css" rel="stylesheet" href="/css/al/index.css?13857653478"></link><link type="text/css" rel="stylesheet" href="/css/al/login.css?15707452649"></link><link type="text/css" rel="stylesheet" href="/css/ui_controls.css?14839603298"></link><link type="text/css" rel="stylesheet" href="/css/al/ui_common.css?16399920764"></link><script type="text/javascript" src="/js/loader_nav3592157875078_0.js"></script><script type="text/javascript" src="/js/al/common.js?1154_1613317695"></script><script type="text/javascript" src="/js/lang0_0.js?6843"></script><script type="text/javascript" src="/js/lib/px.js?ch=1"></script><script type="text/javascript" src="/js/lib/px.js?ch=2"></script><link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.vk.com/" /><link rel="alternate" href="android-app://com.vkontakte.android/vkontakte/m.vk.com/" /><script type="text/javascript" src="/js/al/index.js?3228561433"></script><script type="text/javascript" src="/js/lib/ui_controls.js?986646994"></script><script type="text/javascript" src="/js/al/ui_common.js?2554866735"></script><script type="text/javascript" src="/js/cmodules/web/audioplayer.js?5985822551"></script>

</head>

<body onresize="onBodyResize()" class="index_page">
  <div id="system_msg" class="fixed"></div>
  <div id="utils"></div>

  <div id="layer_bg" class="fixed"></div><div id="layer_wrap" class="scroll_fix_wrap fixed layer_wrap"><div id="layer"></div></div>
  <div id="box_layer_bg" class="fixed"></div><div id="box_layer_wrap" class="scroll_fix_wrap fixed"><div id="box_layer"><div id="box_loader"><div class="pr pr_baw pr_medium" id="box_loader_pr"><div class="pr_bt"></div><div class="pr_bt"></div><div class="pr_bt"></div></div><div class="back"></div></div></div></div>

  <div id="stl_left"></div><div id="stl_side"></div>

  <script type="text/javascript">domStarted();</script>

  <div class="scroll_fix_wrap _page_wrap" id="page_wrap"><div><div class="scroll_fix">
 

  <div id="page_header_cont" class="page_header_cont">
    <div class="back"></div>
    <div id="page_header_wrap" class="page_header_wrap">
      <a class="top_back_link" href="" id="top_back_link" onclick="if (nav.go(this, event, {back: true}) === false) { showBackLink(); return false; }" onmousedown="tnActive(this)"></a>
      <div id="page_header" class="p_head p_head_l0" style="width: 960px">
        <div class="content">
          <div id="top_nav" class="head_nav">
  <div class="head_nav_item fl_l"><a class="top_home_link fl_l " href="/" aria-label="На главную" accesskey="1"><div class="top_home_logo"></div></a></div>
  <div class="head_nav_item fl_l"><div id="ts_wrap" class="ts_wrap" onmouseover="TopSearch.initFriendsList();">
  <input name="disable-autofill" style="display: none;" />
  <input type="text" onmousedown="event.cancelBubble = true;" ontouchstart="event.cancelBubble = true;" class="text ts_input" id="ts_input" autocomplete="off" name="disable-autofill" placeholder="Поиск" aria-label="Поиск" />
</div></div>
  <div class="head_nav_item fl_l head_nav_btns"><span id="top_audio_layer_place"></span></div>
  <div class="head_nav_item fl_r"><a class="top_nav_link" href="" id="top_switch_lang" style="" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 3, hash: '7eca8138159d18a606' }); return false;" onmousedown="tnActive(this)">
  Switch to English
</a><a class="top_nav_link" href="/join" id="top_reg_link" style="display: none" onclick="return !showBox('join.php', {act: 'box', from: nav.strLoc}, {}, event)" onmousedown="tnActive(this)">
  регистрация
</a></div>
  <div class="head_nav_item_player"></div>
</div>
<div id="ts_cont_wrap" class="ts_cont_wrap" ontouchstart="event.cancelBubble = true;" onmousedown="event.cancelBubble = true;"></div>
        </div>
      </div>
    </div>
  </div>

  <div id="page_layout" style="width: 960px;">
    <div id="side_bar" class="side_bar fl_l " style="display: none">
      <div id="side_bar_inner" class="side_bar_inner">
        <div id="quick_login" class="quick_login">
  <form method="POST" name="login" id="quick_login_form" action="https://login.vk.com/?act=login">
    <input type="hidden" name="act" value="login" />
    <input type="hidden" name="role" value="al_frame" />
    <input type="hidden" name="expire" id="quick_expire_input" value="" />
    <input type="hidden" name="recaptcha" id="quick_recaptcha" value="" />
    <input type="hidden" name="captcha_sid" id="quick_captcha_sid" value="" />
    <input type="hidden" name="captcha_key" id="quick_captcha_key" value="" />
    <input type="hidden" name="_origin" value="https://vk.com" />
    <input type="hidden" name="ip_h" value="be7b0a19a6a853c612" />
    <input type="hidden" name="lg_h" value="cb1896f75b7036e623" />
    <div class="label">Телефон или e-mail</div>
    <div class="labeled"><input type="text" name="email" class="dark" id="quick_email" /></div>
    <div class="label">Пароль</div>
    <div class="labeled"><input type="password" name="pass" class="dark" id="quick_pass" onkeyup="toggle('quick_expire', !!this.value);toggle('quick_forgot', !this.value)" /></div>
    <input type="submit" class="submit" />
  </form>
  <button class="quick_login_button flat_button button_wide" id="quick_login_button">Войти</button>
  <button class="quick_reg_button flat_button button_wide" id="quick_reg_button" style="display: none" onclick="top.showBox('join.php', {act: 'box', from: nav.strLoc})">Регистрация</button>
  <div class="clear forgot"><div class="checkbox" id="quick_expire" onclick="checkbox(this);ge('quick_expire_input').value=isChecked(this)?1:'';">Чужой компьютер</div><a id="quick_forgot" class="quick_forgot" href="/restore" target="_top">Забыли пароль?</a></div>
</div>
      </div>
    </div>

    <div id="page_body" class="fl_r " style="width: 960px;">
      <div id="header_wrap2">
        <div id="header_wrap1">
          <div id="header" style="display: none">
            <h1 id="title"></h1>
          </div>
        </div>
      </div>
      <div id="wrap_between"></div>
      <div id="wrap3"><div id="wrap2">
  <div id="wrap1">
    <div id="content"><div id="index_rcolumn" class="index_rcolumn">
  <div id="index_login" class="page_block index_login">
    <form method="post" name="login" id="index_login_form" action="https://login.vk.com/?act=login">
      <input type="hidden" name="act" id="act" value="login">
      <input type="hidden" name="role" value="al_frame" />
      <input type="hidden" name="expire" id="index_expire_input" value="" />
      <input type="hidden" name="_origin" value="https://vk.com" />
      <input type="hidden" name="ip_h" value="be7b0a19a6a853c612" />
      <input type="hidden" name="lg_h" value="8a0b3ea8d82df97276" />
      <input type="text" class="big_text" name="email" id="index_email" value="" placeholder="Телефон или e-mail" />
      <input type="password" class="big_text" name="pass" id="index_pass" value="" placeholder="Пароль" onkeyup="toggle('index_expire', !!this.value);toggle('index_forgot', !this.value)" />
      <button id="index_login_button" class="index_login_button flat_button button_big_text">Войти</button>
      <div class="forgot">
        <div class="checkbox" id="index_expire" onclick="checkbox(this);ge('index_expire_input').value=isChecked(this)?1:'';">Чужой компьютер</div>
        <a id="index_forgot" class="index_forgot" href="/restore" target="_top">Забыли пароль?</a>
      </div>
    </form>
  </div>
  <div id="ij_form" class="page_block ij_form">
    <h2 class="ij_header">Впервые ВКонтакте?</h2>
    <div class="ij_subheader">Моментальная регистрация</div>
    <div id="ij_msg"></div>
    <input type="text" class="big_text" id="ij_first_name" value="" placeholder="Ваше имя" />
    <input type="text" class="big_text" id="ij_last_name" value="" placeholder="Ваша фамилия" />
    <div class="ij_label">Дата рождения<span class="hint_icon" data-title="&lt;b&gt;Заполненная дата рождения&lt;/b&gt; позволит друзьям легче найти Вас, а также подбирать для Вас интересные материалы.&lt;br&gt;Вы сможете всегда настроить видимость Вашей даты рождения в редактировании профиля." onmouseover="showHint(this);"></span></div>
    <div id="ij_birthdate_row" class="ij_birthdate_row clear_fix">
      <div class="ij_bday"><input type="text" class="big_text" id="ij_bday" /></div>
      <div class="ij_bmonth"><input type="text" class="big_text" id="ij_bmonth" /></div>
      <div class="ij_byear"><input type="text" class="big_text" id="ij_byear" /></div>
    </div>
    <div id="ij_sex_row" class="clear_fix unshown">
      <div class="ij_label">Ваш пол</div>
      <div class="radiobtn" onclick="radiobtn(this, 1, 'ij_sex');">Женский</div>
      <div class="radiobtn" onclick="radiobtn(this, 2, 'ij_sex');">Мужской</div>
    </div>
    <button class="flat_button button_wide button_big_text ij_button" id="ij_submit" onclick="Index.submitJoinStart()">Зарегистрироваться</button>
    <div id="index_fbsign" class="index_fbsign">
      <a id="index_fb" class="index_fb_lnk" href="" onclick="return Index.fbJoin();"><div class="index_fb_icon"></div>Войти через Facebook</a>
    </div>
    <div id="index_fbcontinuewithsign" class="index_fbcontinuewithsign">
      <div class="fb-login-button index_fb_continue_with_btn" onclick="return Index.fbJoin();" data-use-continue-as="true" data-width="264" data-max-rows="1" data-size="medium" data-button-type="continue_with"></div>
    </div>
  </div>
</div>
<div class="login_mobile_promo_wrap clear_fix">
  <div class="login_mobile_apps">
    <div class="login_mobile_header">ВКонтакте для мобильных устройств</div>
    <div class="login_mobile_info">Установите официальное мобильное приложение ВКонтакте и оставайтесь в курсе новостей Ваших друзей, где бы Вы ни находились.</div>
   
    <div class="login_app_devices">

      <a href="https://play.google.com/store/apps/details?id=com.vkontakte.android" target="_blank" class="login_app_device login_app_device_android">
        <div class="login_app_device_screen_wrap">
          <div class="login_app_device_screen login_app_device_ru"></div>
        </div>

        <div class="login_app_download_wrap">
          <button class="flat_button secondary button_light">
            <span class="login_app_download_icon"></span>
            VK для Android
          </button>
        </div>
      </a>

      <a href="https://www.microsoft.com/store/apps/9wzdncrfj1pt" target="_blank" class="login_app_device login_app_device_wp">
        <div class="login_app_device_screen_wrap">
          <div class="login_app_device_screen login_app_device_ru"></div>
        </div>

        <div class="login_app_download_wrap">
          <button class="flat_button secondary button_light">
            <span class="login_app_download_icon"></span>
            VK для WP
          </button>
        </div>
      </a>

      <a href="https://itunes.apple.com/ru/app/id564177498" target="_blank" class="login_app_device login_app_device_ios">
        <div class="login_app_device_screen_wrap">
          <div class="login_app_device_screen login_app_device_ru"></div>
        </div>

        <div class="login_app_download_wrap">
          <button class="flat_button secondary button_light">
            <span class="login_app_download_icon"></span>
            VK для iPhone
          </button>
        </div>
      </a>

    </div>
  </div>
  <a onclick="curBox().hide()" id="login_mobile_close" class="login_mobile_close"></a>

  <div class="login_about_mobile">
    Для доступа к быстрой мобильной версии сайта ВКонтакте достаточно ввести в Вашем телефоне короткий адрес: <a target="_blank" href="https://m.vk.com">m.vk.com</a>
  </div>
</div>
<div id="index_footer_wrap" class="footer_wrap index_footer_wrap">
  <div class="footer_nav" id="bottom_nav">
  <div class="footer_copy fl_l"><a href="/about">ВКонтакте</a> &copy; 2017</div>
  <div class="footer_lang fl_r">Язык:<a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 3, hash: '7eca8138159d18a606'})">English</a><a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 0, hash: '7eca8138159d18a606'})">Русский</a><a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 1, hash: '7eca8138159d18a606'})">Українська</a><a class="footer_lang_link" onclick="if (vk.al) { showBox('lang.php', {act: 'lang_dialog', all: 1}, {params: {dark: true, bodyStyle: 'padding: 0px'}, noreload: true}); } else { changeLang(1); } return false;">все языки &raquo;</a></div>
  <div class="footer_links">
    <a class="bnav_a" href="/about">о компании</a>
    <a class="bnav_a" href="/support?act=home" style="display: none;">помощь</a>
    <a class="bnav_a" href="/terms">правила</a>
    <a class="bnav_a" href="/ads" style="">реклама</a>
   
    <a class="bnav_a" href="/dev">разработчикам</a>
    <a class="bnav_a" href="/jobs" style="display: none;">вакансии</a>
  </div>
</div>

<div class="footer_bench clear">
 
</div>
</div></div>
  </div>
</div></div>
    </div>

    <div id="footer_wrap" class="footer_wrap fl_r" style="width: 960px;"><div class="footer_nav" id="bottom_nav">
  <div class="footer_copy fl_l"><a href="/about">ВКонтакте</a> &copy; 2017</div>
  <div class="footer_lang fl_r">Язык:<a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 3, hash: '7eca8138159d18a606'})">English</a><a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 0, hash: '7eca8138159d18a606'})">Русский</a><a class="footer_lang_link" onclick="ajax.post('al_index.php', {act: 'change_lang', lang_id: 1, hash: '7eca8138159d18a606'})">Українська</a><a class="footer_lang_link" onclick="if (vk.al) { showBox('lang.php', {act: 'lang_dialog', all: 1}, {params: {dark: true, bodyStyle: 'padding: 0px'}, noreload: true}); } else { changeLang(1); } return false;">все языки &raquo;</a></div>
  <div class="footer_links">
    <a class="bnav_a" href="/about">о компании</a>
    <a class="bnav_a" href="/support?act=home" style="display: none;">помощь</a>
    <a class="bnav_a" href="/terms">правила</a>
    <a class="bnav_a" href="/ads" style="">реклама</a>
   
    <a class="bnav_a" href="/dev">разработчикам</a>
    <a class="bnav_a" href="/jobs" style="display: none;">вакансии</a>
  </div>
</div>

<div class="footer_bench clear">
 
</div></div>
    <div class="clear"></div>
  </div>
</div></div><noscript><div style="position:absolute;left:-10000px;">
<img src="//top-fwz1.mail.ru/counter?id=2579437;js=na" style="border:0;" height="1" width="1" />
</div></noscript></div>
  <div class="progress" id="global_prg"></div>

  <script type="text/javascript">
    if (parent && parent != window && (browser.msie || browser.opera || browser.mozilla || browser.chrome || browser.safari || browser.iphone)) {
      document.getElementsByTagName('body')[0].innerHTML = '';
    } else {
      domReady();
      updateMoney(0);
if (browser.iphone || browser.ipad || browser.ipod) {
  setStyle(bodyNode, {webkitTextSizeAdjust: 'none'});
}var qf = ge('quick_login_form'), ql = ge('quick_login'), qe = ge('quick_email'), qp = ge('quick_pass');
var qlb = ge('quick_login_button'), prgBtn = qlb;

var qinit = function() {
  setTimeout(function() {
    ql.insertBefore(ce('div', {innerHTML: '<iframe class="upload_frame" id="quick_login_frame" name="quick_login_frame"></iframe>'}), qf);
    qf.target = 'quick_login_frame';
  }, 1);
}

if (window.top && window.top != window) {
  window.onload = qinit;
} else {
  setTimeout(qinit, 0);
}

qf.onsubmit = function() {
  if (!ge('quick_login_frame')) return false;
  if (!trim(qe.value)) {
    notaBene(qe);
    return false;
  } else if (!trim(qp.value)) {
    notaBene(qp);
    return false;
  }
  lockButton(window.__qfBtn = prgBtn);
  prgBtn = qlb;
  clearTimeout(__qlTimer);
  __qlTimer = setTimeout(loginSubmitError, 30000);
  domFC(domPS(qf)).onload = function() {
    clearTimeout(__qlTimer);
    __qlTimer = setTimeout(loginSubmitError, 2500);
  }
  return true;
}

window.loginSubmitError = function() {
  showFastBox('Предупреждениe', 'Не удается пройти авторизацию по защищенному соединению. Чаще всего это происходит, когда на Вашем компьютере установлены неправильные текущие дата и время. Пожалуйста, проверьте настройки даты и времени в системе и перезапустите браузер.');
}
window.focusLoginInput = function() {
  scrollToTop(0);
  notaBene('quick_email');
}
window.changeQuickRegButton = function(noShow) {
  if (noShow) {
    hide('top_reg_link', 'quick_reg_button');
  } else {
    show('top_reg_link', 'quick_reg_button');
  }
  toggle('top_switch_lang', noShow && window.langConfig && window.langConfig.id != 3);
}
window.submitQuickLoginForm = function(email, pass, opts) {
  setQuickLoginData(email, pass, opts);
  if (opts && opts.prg) prgBtn = opts.prg;
  if (qf.onsubmit()) qf.submit();
}
window.setQuickLoginData = function(email, pass, opts) {
  if (email !== undefined) ge('quick_email').value = email;
  if (pass !== undefined) ge('quick_pass').value = pass;
  var params = opts && opts.params || {};
  each (params, function(i, v) {
    var el = ge('quick_' + i) || ge('quick_login_' + i);;
    if (el) {
      val(el, params[i]);
    } else {
      qf.appendChild(ce('input', {type: 'hidden', name: i, id: 'quick_login_' + i, value: v}));
    }
  });
}

if (qlb) {
  qlb.onclick = function() { if (qf.onsubmit()) qf.submit(); };
}

if (browser.opera_mobile) show('quick_expire');

if (1) {
  hide('support_link_td', 'top_support_link');
}
var ts_input = ge('ts_input');
if (ts_input) {
  placeholderSetup(ts_input, {back: false, reload: true, phColor: '#8fadc8'});
}
TopSearch.init();;shortCurrency();
handlePageParams({"id":0,"loc":"","noleftmenu":1,"wrap_page":1,"width":960,"width_dec":0,"width_dec_footer":0,"body_class":"index_page","counters":"","pvbig":0,"pvdark":1});addEvent(document, 'click', onDocumentClick);
addLangKeys({"global_apps":"Приложения","global_friends":"Друзья","global_communities":"Сообщества","head_search_results":"Результаты поиска","global_chats":"Диалоги","global_show_all_results":"Показать все результаты","global_news_search_results":"Результаты поиска в новостях","global_emoji_cat_recent":"Часто используемые","global_emoji_cat_1":"Эмоции","global_emoji_cat_2":"Животные и растения","global_emoji_cat_3":"Жесты и люди","global_emoji_cat_4":"Еда и напитки","global_emoji_cat_5":"Спорт и активности","global_emoji_cat_6":"Путешествия и транспорт","global_emoji_cat_7":"Предметы","global_emoji_cat_8":"Символы","global_emoji_cat_9":"Флаги"}, true);
addLangKeys({"index_to_main":"Главная страница","index_choose_sex":"Укажите пол","index_sel_bday":"День"});
addTemplates({"_":"_"});cur.options = {"bmonths":[[0,"Месяц"],[1,"Января"],[2,"Февраля"],[3,"Марта"],[4,"Апреля"],[5,"Мая"],[6,"Июня"],[7,"Июля"],[8,"Августа"],[9,"Сентября"],[10,"Октября"],[11,"Ноября"],[12,"Декабря"]],"byears":[[0,"Год"],[2003,"2003"],[2002,"2002"],[2001,"2001"],[2000,"2000"],[1999,"1999"],[1998,"1998"],[1997,"1997"],[1996,"1996"],[1995,"1995"],[1994,"1994"],[1993,"1993"],[1992,"1992"],[1991,"1991"],[1990,"1990"],[1989,"1989"],[1988,"1988"],[1987,"1987"],[1986,"1986"],[1985,"1985"],[1984,"1984"],[1983,"1983"],[1982,"1982"],[1981,"1981"],[1980,"1980"],[1979,"1979"],[1978,"1978"],[1977,"1977"],[1976,"1976"],[1975,"1975"],[1974,"1974"],[1973,"1973"],[1972,"1972"],[1971,"1971"],[1970,"1970"],[1969,"1969"],[1968,"1968"],[1967,"1967"],[1966,"1966"],[1965,"1965"],[1964,"1964"],[1963,"1963"],[1962,"1962"],[1961,"1961"],[1960,"1960"],[1959,"1959"],[1958,"1958"],[1957,"1957"],[1956,"1956"],[1955,"1955"],[1954,"1954"],[1953,"1953"],[1952,"1952"],[1951,"1951"],[1950,"1950"],[1949,"1949"],[1948,"1948"],[1947,"1947"],[1946,"1946"],[1945,"1945"],[1944,"1944"],[1943,"1943"],[1942,"1942"],[1941,"1941"],[1940,"1940"],[1939,"1939"],[1938,"1938"],[1937,"1937"],[1936,"1936"],[1935,"1935"],[1934,"1934"],[1933,"1933"],[1932,"1932"],[1931,"1931"],[1930,"1930"],[1929,"1929"],[1928,"1928"],[1927,"1927"],[1926,"1926"],[1925,"1925"],[1924,"1924"],[1923,"1923"],[1922,"1922"],[1921,"1921"],[1920,"1920"],[1919,"1919"],[1918,"1918"],[1917,"1917"],[1916,"1916"],[1915,"1915"],[1914,"1914"],[1913,"1913"],[1912,"1912"],[1911,"1911"],[1910,"1910"],[1909,"1909"],[1908,"1908"],[1907,"1907"],[1906,"1906"],[1905,"1905"],[1904,"1904"],[1903,"1903"],[1902,"1902"],[1901,"1901"]]};
Index.initNew();cur.fbApp = '128749580520227';
cur.fbState = '9977721a8e11b02aef';
cur.fbContinueWithSign = 1;
cur.fbLocale = 'ru_RU';
Index.fbCheck(cur.fbApp, '');
;(function (d, w) {
if (w.__dev) {
  return
}
var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true;
ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js";
var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
})(document, window);
    }
  </script>
</body>

</html>

Где тут что связаное с логином?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Чем пошарить в инете

Сообщение Vadim » 10.09.2017 13:58:27

zub
Логин - это то поле, где есть <type="text" name="email">, а пароль - то поле, где есть <type="password" name="pass">.
В самом простом случае, надо отправить на сервер vk строку запроса;
Код: Выделить всё
http://vk.com - что-то там ещё трали-вали&email=Ваш_email_или_номер_телефона&pass=Ваш_пароль

так как поле для логина называется "email", а поле для пароля - "pass".
Естественно это только в общем смысле, а не конкретная и законченая строка
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Чем пошарить в инете

Сообщение vitaly_l » 10.09.2017 14:44:58

Вот код который отправляется на сервер:
Код: Выделить всё
    <form method="post" name="login" id="index_login_form" action="https://login.vk.com/?act=login">
      <input type="hidden" name="act" id="act" value="login">
      <input type="hidden" name="role" value="al_frame" />
      <input type="hidden" name="expire" id="index_expire_input" value="" />
      <input type="hidden" name="_origin" value="https://vk.com" />
      <input type="hidden" name="ip_h" value="be7b0a19a6a853c612" />
      <input type="hidden" name="lg_h" value="8a0b3ea8d82df97276" />
      <input type="text" class="big_text" name="email" id="index_email" value="" placeholder="Телефон или e-mail" />
      <input type="password" class="big_text" name="pass" id="index_pass" value="" placeholder="Пароль" onkeyup="toggle('index_expire', !!this.value);toggle('index_forgot', !this.value)" />
      <button id="index_login_button" class="index_login_button flat_button button_big_text">Войти</button>
    </form>

И отправляется оно методом POST - это сказано здесь: <form method="post", а не GET. А вот в GET запросе параллельно отправляется команда act=login.

В итоге, как только Zub попытается хакнуть vk.com, его IP и т.д. - мгновенно попадут в базу злоумышленников. Затем, его начнут отслеживать старшие братья, т.к. Zub - не отправит серверу секретную команду и сервер мгновенно это заметит, т.к. на VK не любят когда их хакают.

Zub, Вы хотите научиться хакать vk.com? Или сделать бота, который сможет автоматом входить на VK? Зачем Вам весь этот ужас?


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем пошарить в инете

Сообщение zub » 10.09.2017 15:37:56

>>Вот код который отправляется на сервер:
Это както ясно из того что мне выдало в предыдущем посте? или это получено снифером?

>>Zub, Вы хотите научиться хакать vk.com? Или сделать бота, который сможет автоматом входить на VK? Зачем Вам весь этот ужас?
Я хочу залогиниться програмно. если это называется хакать - то да
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Чем пошарить в инете

Сообщение vitaly_l » 10.09.2017 15:43:46

zub писал(а):Это както ясно из того что мне выдало в предыдущем посте?

Это я взял из того что Вам вернул сервер VK.
zub писал(а):Я хочу залогиниться програмно. если это называется хакать - то да

Zub-ик, посмотрите внимательно, там есть вот такая команда: onkeyup="toggle('index_expire', !!this.value);toggle('index_forgot', !this.value)"... Это значит что, она проверяет: бот вы, или не бот. И если она решит что Вы бот, то попросит Вас ответить на каверзные вопросы, типа: Покажите картинки на которых нарисованы зубы. И постольку поскольку вы не сможете определить какие картинки с зубами, а какие без, то залогиниться у Вас не получится.

/
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем пошарить в инете

Сообщение zub » 10.09.2017 15:48:25

>>там есть вот такая команда:
т.е. это чтото происходящее по отпусканию клавишь?

>> Это значит что, она проверяет БОТ вы или не бот
значит надо прикидываться не ботом
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Чем пошарить в инете

Сообщение vitaly_l » 10.09.2017 15:55:32

zub писал(а):это чтото происходящее по отпусканию клавишь?

да.
zub писал(а):значит надо прикидываться не ботом

Зуб-ик - это только надводная часть их защиты, но Вы можете попытать счастье. Они защищаются, т.к. полно людей, которые хотят логиниться как Вы и писать туда всякую рекламу. А они это разрешают только если печатает человек.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем пошарить в инете

Сообщение pupsik » 10.09.2017 17:11:32

zub вот нафи..а вам контакт. Возьмите что то попроще. Не надо на сим учиться.

А если и учить то... забыли куки подать верные и ... авторизация идёт не через vk.com. :lol:

В общем... найдите что то попроще. Или почитайте АПИ контакта. И через него работайте.

п.с.
хоть и ник зубастый, вы ещё в фейсбук логиниться начните :mrgreen:

Добавлено спустя 1 минуту 35 секунд:
А они это разрешают только если печатает человек.
Да ??? Т.е. над каждым кто в вк вползает сидит контролёр и шмотрит :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Чем пошарить в инете

Сообщение vitaly_l » 10.09.2017 21:13:16

pupsik писал(а):Да ??? Т.е. над каждым кто в вк вползает сидит контролёр и шмотрит

Вообще криминалистика сложная наука. Они могут идентифицировать человека, по тому как он набирает текст на клавиатуре и т.д. А уж определить человек или машина - намного проще. Разве что придётся симулировать человека. Кроме того, можно легко посмотреть действия каждого на сайте и записать их на видео. На ВК этого наверное нет, но проверка на ботов есть и как только код сочтёт что Вы бот, то он тут же попросит разгадать картинки.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем пошарить в инете

Сообщение Mirage » 11.09.2017 02:44:36

Шарить надо ессно соотв. билиотекой. В данном случае соотв. библиотека это http-клиент. Synapse и Indy таковые имеют, насколько помню.
Желательно, чтобы поддерживался https.
Если есть REST API, а у серьезных сайтов он обычно есть, то надо юзать его, предварительно ознакомившись с правилами его использования.
АПИ эти для того и делаются, чтобы использовать в таких случаях.
Конечно, не мешает иметь общее представление о протоколе http и REST.
Для логина хорошо бы использовать библиотеку, реализующую oauth, но не уверен, что таковая есть для FPC. Кто напишет - молодец.
Если АПИ у сайта нет, то скачивается страница и интересующая инфа парсится из html кода. Если инфа эта докачивается скриптами, то смотрится в консоли браузера какие запросы куда отправляются и отправляются такие же. Основную страницу при этом загружать как правило не обязательно.
Если инфа доступна только после логина, а логин защищен какой-нибудь капчей, то это проблема. Решается индивидуально.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Чем пошарить в инете

Сообщение vitaly_l » 11.09.2017 06:54:08

pupsik писал(а):забыли куки

Кстати про куки. Если сделать нормальный браузер и вначале войти как человек, то на машину сохранится кука со всей информацией о пользователе. И потом на ВК можно будет входить без логина, т.к. все данные можно будет отравлять из этой куки и ВК будет автоматически логинится.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем пошарить в инете

Сообщение Лекс Айрин » 11.09.2017 09:40:25

vitaly_l писал(а):В итоге, как только Zub попытается хакнуть vk.com, его IP и т.д. - мгновенно попадут в базу злоумышленников. Затем, его начнут отслеживать старшие братья, т.к. Zub - не отправит серверу секретную команду и сервер мгновенно это заметит, т.к. на VK не любят когда их хакают.


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

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

vitaly_l писал(а):И потом на ВК можно будет входить без логина, т.к. все данные можно будет отравлять из этой куки и ВК будет автоматически логинится.


Даже при наличии кук периодически приходится перелогиниваться и ВК при этом стучит на почту, что кто-то, предположительно сам пользователь, ломится в его аккаунт. Если у тебя не стучит, то ты сам себе редиска.

Mirage писал(а):Если инфа доступна только после логина, а логин защищен какой-нибудь капчей, то это проблема. Решается индивидуально.


Имхо, почти всегда можно показать капчу пользователю, а ответ оттранслировать обратно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Чем пошарить в инете

Сообщение Снег Север » 11.09.2017 10:02:41

Mirage писал(а):Для логина хорошо бы использовать библиотеку, реализующую oauth, но не уверен, что таковая есть для FPC.

вроде есть и не одна, сам не проверял
https://github.com/rvk01/google-oauth2
https://github.com/stievie/POAuth2
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

Рейтинг@Mail.ru