Ana Sayfa » Destek Merkezi » O-Key Identity_yardim » Örnek Activex Uygulaması 2...
O-Key Identity
O-Key SecureAccess
Destek Talebi
Hakkımızda
Destek Merkezi
Bülten Üyeliği
 
Örnek Activex Uygulaması 2
Bu içeriği Değerlendirin :    Değerlendirmeniz için teşekkür ederiz.   

Örnek 2: ActiveX Uygulaması

Bu örnekte ise Örnek1’ e ek olarak daha güvenli bir kod yazılacaktır.

Örnek 1’e dikkat edilirse, sayfanın kaynağı görüntülendiğinde cihaza gönderilen tüm parametreler kullanıcı tarafında görüntülenebilmektedir. Bu ciddi bir güvenlik sıkıntısıdır. Çünkü cihaza gönderilen parametreler özel veri ya da anlam içerebilir. Bu nedenle cihaza gönderilecek parametreler harici bir kaynaktan çekilmelidir.

Ayrıca bu harici kaynağa kullanıcılar tarafından erişim yapılmamalıdır. Aşağıda bu işlemin nasıl yapılacağına dair bir örnek uygulama gösterilecektir.

Parametreleri gizlemek için farklı yöntemlerde kullanabilirsiniz.

Not : Burada parametreler her ne kadar son kullanıcıdan gizlense de profesyonel kullanıcılar tarafından görüntülenebilir.

Daha güvenli bir sistem için kullanıcı sayfası ile kontrol sayfaları arasında gidip-gelen veriler şifrelenmeli ya da farklı bir yöntem ile kullanıcının erişimine kapatılmalıdır.

Bu örnekte 3 adet sayfamız olacak.

demo.asp – kullanıcının gireceği sayfa

response.asp – parametrelerin çekileceği sayfa

OkeyIdentity.js – fonksiyonların bulunduğu sayfa.

İlk önce demo.asp adında boş bir sayfa oluşturuyoruz. Örnek1 de yaptığımız gibi yine aynı işlemleri yapacağız. Bu örnekte sadece daha fazla buton olacak ve daha fazla fonksiyona erişeceğiz.

İlk önce nesnemizi tanımlayalım.

<HTML>

<HEAD>

<TITLE>O-Key Identity Demo</TITLE>

</HEAD>

 

<BODY>

 

<OBJECT ID=OkeyIdentity

        classid="clsid:D06B2328-27AB-4F45-B02D-6ACEFEDD486E"

        codebase="http://localhost/OkeyIdentityActivex.cab#version=1,0,9,0"

        width=220

        height=102

        align=center

        hspace=0

        vspace=0

>  

</OBJECT>

 

</BODY>

</HTML>

 

response.asp dosyasında , güvenlik amacıyla kullanıcıya verilen session kontrol edilecektir. O yüzden demo.asp sayfamız yüklendiğinde bir session yaratalım.

 

<%

session("SID")=session.SessionID

%>

 

Fonksiyonlarımızı web sayfasına yazmak yerine bir javascript dosyasına yazarak ordan erişim sağlayacağız.  Kaynak dosyamızın adı OkeyIdentity.js olsun.

demo.asp sayfamızdan fonksiyonlara erişirken kaynak dosyasını aşağıdaki gibi tanımlayarak erişeceğiz.

Fonksiyonlarımız, aldığı cevapları input nesnesine yazacaktır.

 

<script language="javascript" src=OkeyIdentity.js></script>

<script>

function Web_OD_Login()

{

document.form1.StringInput.value += JS_OD_Login()+"\n";

}

 

function Web_OD_Logout()

{

 

document.form1.StringInput.value += JS_OD_Logout()+"\n";

 

}

...

...

</script>

 

 

Şimdi asıl fonksiyonlarımızı tanımlayacağımız OkeyIdentity.js dosyasını oluşturalım.

OkeyIdentity.js dosyasında Cihaz erişim fonksiyonlarımız haricinde ek fonksiyonlar da bulunacaktır. Bu ek fonksiyonlar ajax alt yapısını kullanarak, response.asp dosyasından istediğimiz parametreyi çekmemizi sağlayacaktır. Böylece kullanıcılar sayfanın kaynağını görüntülediklerinde herhangi bir parametre göremeyeceklerdir.

OkeyIdentity.js

var request;

var response

var dongle_session;

var encrypted_data;

function InitializeRequest()

{

    request = false;

      if (window.XMLHttpRequest) { // Mozilla, Safari,...

       request = new XMLHttpRequest();

        if (request.overrideMimeType) {

              request.overrideMimeType('text/html');

        }

    } else if (window.ActiveXObject) { // IE

        try {

              request = new ActiveXObject("Msxml2.XMLHTTP");

        } catch (e) {

              try {

              request = new ActiveXObject("Microsoft.XMLHTTP");

              } catch (e) {}

        }

    }

    if (!request) {

        alert('Cannot create XMLHTTP instance');

        return false;

    }

}

function GetParameter(parameter)

{

    InitializeRequest();

    var param = "rndParam="+Math.random+"&sourceurl="+window.location.href;

    param = param + "&dongle_parameter="+parameter;

    request.onreadystatechange = ProcessRequestList;

    request.open("POST","response.asp",false);

    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    request.send(param);

    return response;

}

function ProcessRequestList()

{

      if(request.readyState == 4)

      {

            if(request.status == 200)

            {

                if(request.responseText != "")

                  {

                        response = request.responseText;

                  }

            }

      }

}

 

Burada tanımlanan GetParameter fonksiyonu, aldığı parametreyi response.asp sayfasına göndererek, bu sayfadan aldığı cevabı geri döndürmektedir.

Cihaza erişim esnasında kullanacağımız parametreleri kullanıcılardan gizlemek için GetParameter  fonksiyonunu kullanarak, response.asp sayfasından çekeceğiz.

Aşağıda buna bir örnek verilmiştir.

function JS_OD_Login()

{

      module_id=GetParameter('module_id');

      device_parameter=GetParameter('device_parameter');

      dongle_session=OkeyIdentity.OD_Login(module_id,device_parameter);

      return dongle_session;

}

Bu fonksiyon cihaza giriş esnasında kullanacağı module_id ve device_parameter değişkenlerini response.asp den çekmektedir.

Diğer tüm fonksiyonlarda buna benzer şekilde tanımlanmıştır.

Parametreyi geri döndüren response.asp dosyası ise, kendisine gelen talepleri değerlendirerek istenen parametreyi geri döndürmektedir.

Ayrıca session kontrolü ve gelen sayfa kontrolü yaparak, response.asp nin kullanıcı tarafından görüntülenmesini engellemektedir.

response.asp

 

<%

 

if Request.Form("sourceurl")<>"http://localhost/demo.asp" then

response.End

end if

 

if session("SID")<> session.sessionID then

response.end

end if

 

dim parameter

parameter=Request.Form("dongle_parameter")

 

Select Case parameter

      Case "module_id"

            Response.Write "0"

      Case "device_parameter"

            Response.Write ("A021B6AF90ECBD48534AA14024E903FE")

      Case "string_data"

            Response.Write "SampleStringData"

      Case Else

            Response.Write("hatalı parametre")

End Select

%>

 

Burada en baştaki kontrolde, gelen taleplerin gerçekten doğru sayfa tarafından gönderilip gönderilmediğine bakılmaktadır. Bizim anasayfamız IIS üzerinde demo.asp olduğu için tanımlaması  “http://localhost/demo.asp" olarak yapışmıştır. Siz buraya gerçek sitenizin adresini yazmalısınız.

Daha sonra ise demo.asp de yaratılan sessionID nin geçerli olup olmadığına bakılmaktadır.

Son kısımda ise OkeyIdentity.js tarafından talep edilen parametreler bulunmaktadır. Kendisine gönderilen parametreye bakarak, geriye cevap döndürmektedir. Dilerseniz buraya istediğiniz kadar parametre ekleyebilirsiniz.

Böylece parametreler kullanıcıdan gizlenmiştir.

Bu örneğin tamamına O-Key Identity SDK klasöründeki örnek uygulamalardan erişebilir ve inceleyebilirsiniz.

 


<<Geri
Kullanım Kuralları | Gizlilik Sözleşmesi
Anasayfa   |   Kurumsal  |   Ürünler   |   Satın Al  |   Destek Merkezi   |   İletişim
O-Key Dongle Software Protection Systems Copyright (c) 2005- Okyanus Bilisim Teknolojileri. Tüm Hakları Saklıdır.