Webbrowser Login İşlemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdem55
Üye
Mesajlar: 22
Kayıt: 18 Mar 2014 06:54

Webbrowser Login İşlemi

Mesaj gönderen erdem55 » 22 Haz 2018 04:27

Merhaba arkadaşlar,

Kod: Tümünü seç

https://kbs.egm.gov.tr/
adresindeki güvenlik kodunu nasıl alabilirim. Bu konuda yardımınızı bekliyorum.
Not: Daha önce güvenlik kodu olmadığı için giriş yapabiliyordum, fakat güvenlik kodu konusunda maalesef başarısız oldum.

Kod: Tümünü seç

RetCap.aspx
diye biryerden alıyor resmi.
Ayrıca

Kod: Tümünü seç

      WebBrowser1.OleObject.Document.getElementByID('txtkullaniciadi').value := 'kullanıcı adi;
      WebBrowser1.OleObject.Document.getElementByID('txtsifre').value := 'şifre';
      WebBrowser1.OleObject.Document.getElementByID('Button1').Click;
webbrowser ile yukardaki kodlar ile giriş yapıyordum. IdHTTP1 ile giriş yapıp veri çekebilmek mümkünmüdür.

erdem55
Üye
Mesajlar: 22
Kayıt: 18 Mar 2014 06:54

Re: Webbrowser Login İşlemi

Mesaj gönderen erdem55 » 23 Haz 2018 07:05

Belirli ipler dışında siteye giriş engelli sanırım. Sayfa kodlarını aşağıya ekledim.

Kod: Tümünü seç




<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /><meta name="description" /><meta name="author" /><title>
	KİMLİK BİLDİRİM SİSTEMİ (KBS)
</title><link href="css/bootstrap.min2.css" rel="stylesheet" /><link href="css/font-awesome.min2.css" rel="stylesheet" /><link href="css/sb-admin-2.css" rel="stylesheet" /><script type="text/javascript" src="https://ff.kis.v2.scr.kaspersky-labs.com/83943621-29FC-4142-A063-14AE967C594D/main.js" charset="UTF-8"></script></head>
<body>
    
      <div class="ortala">
        <img src="ProjeDosya/images/egm_logo.PNG" />
    </div>
     
    <div class="container2">
        <div class="row">
            <div class="col-md-4 col-md-offset-4">
                <div class="login-panel panel panel-primary">
                    <div class="panel-heading">
                        <h3 class="panel-title">KİMLİK BİLDİRİM SİSTEMİ</h3>
                    </div>
                    <div class="panel-body">
                        <form name="ctl01" method="post" action="./" onsubmit="javascript:return WebForm_OnSubmit();" id="ctl01" role="form">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJOTUwMzMxMzkwD2QWAgIDD2QWAgIGDw8WAh4EVGV4dAUNMTg4LjExOS40Ny4zNWRkZLmSpkUocb90tMMtgpqs8g2AgdmlIBc+STR5IRtIR41D" />
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['ctl01'];
if (!theForm) {
    theForm = document.ctl01;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=0vUvFtPERcyg4CTqDTeQCl-5XPAbv3syal-nydY1c9TewGi0XVzMCMaPDWNRqdnrdSix6CV3G0QTiaSKbcLwhv-TFt0EXOINylycOISDD2k1&amp;t=636476230140000000" type="text/javascript"></script>


<script src="/WebResource.axd?d=D5BHZgzkgPfnLCUJxkh0XtFCNy5hQ_ZObHOB3BZDAa8VZpG7biWVLLKPgJrg_Z15Ps7zVKreUblsGvZlT_jUD8BFZxkDtZBFZpITfarD9gI1&amp;t=636476230140000000" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>

<div>

	<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C2EE9ABB" />
</div>
                            <input type="hidden" name="AntiForgeryToken" id="AntiForgeryToken" value="5f691f10-9ea3-4799-ab52-ac8b5fc539b1" />
                            <input type="hidden" name="GuidId" id="GuidId" />
                            <fieldset>
                                <div class="form-group">
                                    <span id="Label1">İp Adresi : </span><span id="lblip">188.119.47.35</span>
                                </div>
                                <div class="form-group">
                                    <input name="txtkullaniciadi" type="text" id="txtkullaniciadi" class="form-control" placeholder="Kullanıcı Mail Adresi" /><span id="RequiredFieldValidator1" style="color:#CC3300;font-size:Larger;display:none;">*</span>
                                </div>
                                <div class="form-group">
                                    <input name="txtsifre" type="password" id="txtsifre" class="form-control" placeholder="Şifre" /><span id="RequiredFieldValidator2" style="color:#CC3300;font-size:Larger;display:none;">*</span>
                                </div>
                               
                                <div>
                                    <img id="imgCap" src="RetCap.aspx" style="height:40px;width:120px;border-width:0px;" />
                                    <input name="txtCap" type="text" id="txtCap" class="form-control" placeholder="Güvenlik Kodu" />
                                </div>
                                  
                                <span id="lblbilgi" style="color:#CC3300;font-family:Arial Rounded MT Bold;font-size:Large;font-weight:bold;"></span>
                                <div id="ValidationSummary1" class="form-group" style="color:#CC3300;font-family:Arial Rounded MT Bold;font-size:Large;font-weight:bold;display:none;">

</div>
                                              
                                <input type="submit" name="Button1" value="Giriş" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, true, &quot;login&quot;, &quot;&quot;, false, false))" id="Button1" class="btn btn-lg btn-success btn-block" />                                                               
                            </fieldset>
                        
<script type="text/javascript">
//<![CDATA[
var Page_ValidationSummaries =  new Array(document.getElementById("ValidationSummary1"));
var Page_Validators =  new Array(document.getElementById("RequiredFieldValidator1"), document.getElementById("RequiredFieldValidator2"));
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1");
RequiredFieldValidator1.controltovalidate = "txtkullaniciadi";
RequiredFieldValidator1.errormessage = "Kullanıcı Adınızı Giriniz!";
RequiredFieldValidator1.display = "Dynamic";
RequiredFieldValidator1.validationGroup = "login";
RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator1.initialvalue = "";
var RequiredFieldValidator2 = document.all ? document.all["RequiredFieldValidator2"] : document.getElementById("RequiredFieldValidator2");
RequiredFieldValidator2.controltovalidate = "txtsifre";
RequiredFieldValidator2.errormessage = "Şifreyi Giriniz!";
RequiredFieldValidator2.display = "Dynamic";
RequiredFieldValidator2.validationGroup = "login";
RequiredFieldValidator2.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator2.initialvalue = "";
var ValidationSummary1 = document.all ? document.all["ValidationSummary1"] : document.getElementById("ValidationSummary1");
ValidationSummary1.validationGroup = "login";
//]]>
</script>


<script type="text/javascript">
//<![CDATA[

var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
        //]]>
</script>
</form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="container2">
        <div class="row">
            <div class="col-md-44 col-md-offset-24">
                <div class="login-panel panel panel-primary">
                    <div class="panel-heading">
                        <h3 class="panel-title">Kullanıcılar İçin Önemli Notlar</h3>
                    </div>
                    <div class="panel-body">
                        <p>» Kullanıcı, sadece kendisine ait kullanıcı adı ve şifresi ile Bilgi Sistemine bağlanabilir. Şifresini başka birisine söyleyemez ve kullandıramaz.</p>
                        <p>» Yapılan tüm işlemlere ait iz (LOG) kayıtları Emniyet Genel Müdürlüğü tarafından muhafaza edilir. Adli ve idari tüm hukuki süreçlerde kullanılır. </p>
                        <p>» Emniyet Birimleri tarafından verilen şifreler güvenlik gereği değiştirilmek zorundadır.</p>
                        <p>» Şifreler kolay tahmin edilebilir olmamalıdır.</p>
                        
                    </div>
                    <div class="panel-footer">
                        KİMLİK BİLDİRİM SİSTEMİ
                    </div>
                </div>
            </div>
        </div>
    </div>      
    
    <script src="js/metisMenu.min.js"></script>
    <script src="js/jquery.min.js"></script>
</body>
</html>

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 2996
Kayıt: 17 Nis 2006 07:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Webbrowser Login İşlemi

Mesaj gönderen sabanakman » 05 Tem 2018 09:22

İyi günler. Chrome ve/veya firefox gibi tarayıcıların geliştirici seçeneklerini açtığınız vakit, AĞ sekmesi altında bu tür sitelere giriş yaparken POST edilen verileri detaylı olarak inceleyebilirsiniz. Eğer bu karmaşık gelir ise Delphi de hazırladığınız bir webbrowser bileşeni ile ilgili siteyi açın ve Fiddler programı ile bu programdan POST edilen bilgiyi inceleyin. Aynı değerleri indy ile POST etmeniz durumunda oturumu açması gerekmektedir.

TLS ve SSL ile alakalı bazı protokolleri kullanan siteler için bazı ayarlar yapmanız gerekebilir. libeay32.dll ve ssleay32.dll dosyalarını progam.exe dosyasının yanında durması gerektiği gibi bir kaç bileşen ayarı yapmak da gerekebilir;
+"TIdSSLIOHandlerSocketOpenSSL" bileşeni ekleyin,
-SSLOptions.Method = sslvTLSv1_2 (TLS1.2 için)
-SSLOptions.SSLVersions = [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2] (bağlanılacak sunucunun kullanması muhtemel versiyonlar)

+"TIdHTTP" bileşeninin,
-IOHandler özelliğine yukarıdaki ayarlara sahip ("TIdSSLIOHandlerSocketOpenSSL" tipli) bileşeni ayarlayın,
-Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0'; olarak değiştirin, (bazı siteler güncel olmayan tarayıcılarda açılmamak üzere ayarlanmış olabiliyor)

Bu ayarlarla birlikte doğru bilgileri POST etmeniz durumunda TWEBBrowser ile yapılan işlemlerin tamamını indy bileşenleri ile de yapmak mümkün olacaktır. Artık iş burada gelen http bilgilerini doğru olarak çözümlemeye kalmaktadır. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .

Kullanıcı avatarı
maxpaynen
Üye
Mesajlar: 5
Kayıt: 14 Tem 2018 02:20
İletişim:

Re: Webbrowser Login İşlemi

Mesaj gönderen maxpaynen » 14 Tem 2018 04:33

Güvenlik kodu koymalarının sebebi zaten bu şekilde girişi engellemek. Site açılamadığı için inceleyemedim. Sen ordaki güvenlik kodu resmini aldırsan bile login yapıldığı andaki güvenlik resmiyle aynı resim olacağını sanmıyorum.
WebBrowser bileşeni Windowsun Internet Explorerini delphide kullanmak içindir. IE tarayıcıda ne iş yapıyosan delphi programındada onu yaparsın sayfa gezmek login olmak gibi. IE'de de şöyle bi durum var örneğin Windows İE versiyonun 7 falansa google güvenlik resimlerini falan okumuyor artık.

mert_37
Üye
Mesajlar: 23
Kayıt: 13 Şub 2014 02:53

Re: Webbrowser Login İşlemi

Mesaj gönderen mert_37 » 11 Eyl 2018 12:18

Erdem bey mailiniz varmı ?

Cevapla