• 05-05-2009, 15:02:37
    #1
    arkadaslar anka81 ile birlikte yaptigimiz sitenize koyabileceginiz guzel bir guvenlik yontemi gelistirdik.bu kodlar ile sitenizde kullanicilarin bazi sayfalara sadece sizin vermis oldugunuz butonu tiklayarak gidebilecekler,kullanicilar kafalarina gore address bara url yazarak bu sayfalara ulasamayacaklar.simdi nasil yapildigini anlatayim.
    oncellikle bir tane anasayfa.asp ve bir tane de process.asp sayfaniz oldugunu dusunelim.anasayfanizdaki bir kulaniciyi bir button ile process.asp ye gonderebiliyoruz.
    anasayfa.asp
    <html> 
    <head> 
    </head> 
    <body> 
      <form method="post" action="process.asp">
        <input type="hidden" name="gizli" id="buraya" value="<%=rasgele%>">
        <input type="submit" id="kaydet" value="Submit">
      </form>
    </body> 
    </html>
    <%
    function rasgele
      randomize
      max=999999
      min=100000
      tut=Int((max-min+1)*Rnd+min)
      session("gizli")=tut
      rasgele=tut
    end function
    %>
    proccess.asp
    <%
    If Int(Request.Form("gizli"))<>Int(session("gizli")) Then 
      response.write "yanlis isler yapiyon"
      else
      response.write "dogru isler yapiyon"
    End If
    %>
    eger bu iki sayfayi denerseniz.anasayfa.asp de submit butonuna bastiginiz zaman proccess.asp ye gidecek ve dogru isler yapiyosun diyecek.ama anasayfa.asp submit butonuna basmak yerine address bara proccess.asp yi yazip enterladiginizda yanlis isler yapiyon diyecektir,bu soylemler sadece ornek,siz yanlis isler yapiyo kisminda isterseniz geldigi sayfaya yonledirirsiniz ve dogru isler yapiyo kisminda ise process.asp de olmasi gerekleri yaptirabilirsiniz.
    not:ilk basta javascriptte yapmaya basladik o yuzden javascript bolumunde.aslinda asp bolumune alinsa daha dogru olur.
  • 05-05-2009, 15:43:14
    #2
    niye js ile yapmak istiyosun ?
    asp ile random kod üreten bi fonksiyon yapıp, hidden inputun value değerine direkt bunu yazdırsanya, daha kolay, daha pratik. ben öyle yapıyorum. (güvenlik kodu oluşturmak maksadıyla, sanırım sende o maksatla istiyosun, istersen kullandığım random fonksiyonunu yazıyım buraya asp istersen tabi,)

    js ile yapmak istersen de jquery ile nasıl yapacağını açıklayabilirim. random değer için var ile bi değişken oluştur ve selector ile hidden value ye bunu ekle, misal:
    var rasgele = ...... >> random sayı oluşturuyoz
    $("#hidden_id").val(rasgele); >> inputu id ile seçip (name ile de olur, id daha kolay) value değerine rasgelede oluşan sayıyı aktarıyoz.
  • 05-05-2009, 16:37:15
    #3
    anka81 adlı üyeden alıntı: mesajı görüntüle
    niye js ile yapmak istiyosun ?
    asp ile random kod üreten bi fonksiyon yapıp, hidden inputun value değerine direkt bunu yazdırsanya, daha kolay, daha pratik. ben öyle yapıyorum. (güvenlik kodu oluşturmak maksadıyla, sanırım sende o maksatla istiyosun, istersen kullandığım random fonksiyonunu yazıyım buraya asp istersen tabi,)
    js ile yapmak istersen de jquery ile nasıl yapacağını açıklayabilirim. random değer için var ile bi değişken oluştur ve selector ile hidden value ye bunu ekle, misal:
    var rasgele = ...... >> random sayı oluşturuyoz
    $("#hidden_id").val(rasgele); >> inputu id ile seçip (name ile de olur, id daha kolay) value değerine rasgelede oluşan sayıyı aktarıyoz.
    hidden olan inputa submit onclick olunca deger atmak istiyorum,ayni zamanda random sayi gonderen fonksiyonda session a da o deger i aticam,ve process.asp nin icinde formun hidden kismindan gelen deger ile sessiondaki degeri kiyaslarak process.asp nin calismasini saglatmak istiyorum,buradaki amacim,her hangi bir kullanicinin adres bar dan elle url girmesini engellemek,cunku kullanici elle url girdigi zaman hidden olan inputta deger olmadigin icin process.asp islem yapmayacak,ancak ve ancak submit onclick olunca calisacak.asp biliyorum ama javascriptte yeniyim,daha bir fonksiyondan aldigim degeri inputun icinde nasil o input degerine verecegimi bile bilmiyorum.
  • 05-05-2009, 18:08:30
    #4
    hımmm, jquery devreye sokarak şöyle bişiler yumurtlarım sana:

    <script type="text/javascript" src="jquery-1.3.2.js"></script>
    <script type="text/javascript">
        	$(document).ready(function(){
    	var rasgele = Math.floor(Math.random()*1001);
    	$("form").submit(function()
                {
    			$("#buraya").val(rasgele);
                });
        });
    </script>
    şimdi burda şöyle bir formun olduğunu farz ediyorum.
    <form action....>
    <input type="text" id="buraya">
    <input type="submit" id="kaydet" value="Submit">
    </form>

    > sayfanda birden fazla form varsa, forma id vererek çağır. misal:
    <form id="form1"> olsun, bu durumda selector > $("#form1").submit(function... olacak.

    ____________________________
    bu kod, form clicklediğinde değil, submit edildiğinde çalışır, aslında form alanında bi farkı olmaz, bu kodu denersen, form kaydedildiğinde inputa 0-1001 arası değerler atar. (rasgele kısmından değiştirirsin.)
    bu olayı click ile de çağırabilirsin:
    $("form").submit(function() >> yerine $("form").click(function() ile.
    veya formla çağırmanda şart değil, kaydet adlı id ile de çağırabilirsin:
    $("#kaydet").submit(function() >> veya $("#kaydet").click(function() ile.
    _____________________________
    mantığı bu hocam, sen sor, beraber takılalım kaldığın yerden.
  • 05-05-2009, 19:44:57
    #5
    simdi yukaridaki verdigin kodlari denedim bi kerede calisti.supersin hocam.aynen verdigin kodlari yazdim,formun icindeki texte name="gizli" dedim ve formu yonledirdigim process.asp de response.write Request.Form("gizli") komutu ile rasgele sayiyi gordum,tam istedigim gibi oldu, process.asp yi adress bara girince process.asp bos aciliyor ,ancak default.asp de submit tusuna basinca gelen process.asp de rasgele sayi geliyor.
    simdi sunu yapmam gerek rasgele sayi uretilen yerde cikan sayiyi birde session("gizli") diye atamam gerekiyo az ocne javascriptte session yapma ilgili bir ornek buldum simdi onuda yapayim,

    sence bu yontem guvenlik acisindan oldukca etkili olur degilmi? bu sekilde kimse elle url girerek sayfalardaki islemleri yaptiramaz,
    ornek bir sayfam soyle olsun www.test.com/olay.asp?id=345 gibi bi yer olsun,
    eger ben bu linke baska bir sayfadan yukaridaki yaptigimiz formdaki gibi submit tusu ile yonlendiriyorsam,kullanici adress bara www.test.com/olay.asp?id=345 yazdigi zaman acilmayacak?
  • 05-05-2009, 21:32:20
    #6
    sorunu yanlış anlamadıysam şunu diyosun:
    gizli input değeri taşınmadan, diğer sayfaya geçilemesin.
    doğru anladıysam, zaten bu şekilde girmeye çalışıldığında input value boş gelir, çünkü oradaki değer submit (veya click) ile üretiliyor, yani otomatik olarak baştan bi değer atanmıyo. hocam işe yarıyo mu diye hemen deneseydin ya keşke ?

    yanlış anladıysam bişiler daha yaz, halletmeye çalışak.
    bi de js istemci taraflı çalışır, güvenlik konusunda çok kaygılıysan asp ile de bazı güvenlik önlemleri ekleyebilirsin, misal http_referrer ile gelen sayfa kontrolü, veya script_name gibi.
    hadi bakalım, kolay gelsin.
  • 05-05-2009, 23:38:31
    #7
    anka81 adlı üyeden alıntı: mesajı görüntüle
    sorunu yanlış anlamadıysam şunu diyosun:
    gizli input değeri taşınmadan, diğer sayfaya geçilemesin.
    doğru anladıysam, zaten bu şekilde girmeye çalışıldığında input value boş gelir, çünkü oradaki değer submit (veya click) ile üretiliyor, yani otomatik olarak baştan bi değer atanmıyo. hocam işe yarıyo mu diye hemen deneseydin ya keşke ?
    yanlış anladıysam bişiler daha yaz, halletmeye çalışak.
    bi de js istemci taraflı çalışır, güvenlik konusunda çok kaygılıysan asp ile de bazı güvenlik önlemleri ekleyebilirsin, misal http_referrer ile gelen sayfa kontrolü, veya script_name gibi.
    hadi bakalım, kolay gelsin.
    soruyu dogru anlamisin,zaten verdigin kodta tam bunun icin,yalniz ben hala session olayini halledemedim,

    aspde sessionlari cok kullandim ama javascriptte internetten buldugum orneklerle yapamadim bir turlu,
    javascript te session su ornek komut ile isleniyormus
    session.putValue("username","ali");
    ama bunu kullanamadim,arastirmaya devam ediyorum.
  • 06-05-2009, 00:02:17
    #8
    burdan takıl:
    ASP JavaScript Lessons
  • 06-05-2009, 00:14:12
    #9
    anka81 adlı üyeden alıntı: mesajı görüntüle
    burdan takıl:
    ASP JavaScript Lessons
    simdi baktim gonderdigin linke ama orada sirf cookilerden bahsetmis,ben session ile halletmek istiyorum,
    yabanci bi kaynakta bir kisi soyle bisey yazmis,demiski javascript clientside oldugu icin serverside biseyi anca javascriptin icinde <% ...%> asp gibi kodla ekleyibilrsin demis.ve asagidaki gibi bir kod vermis.

    <%
      Session("MyTest") = Request.Form("txtHiddenMyTest")
    %>
    sence bu kodu senin gonderidigin javascriptte, rasgele degisken verilme asamasinda rasgele degiskeni inputun value suna atadiktan sonra eklesek
    olur mu? oradaki Request.Form("txtHiddenMyTest") kisminda Request.Form("buraya") yazdim denedim olmadi,nasil yazsam olabilir?