|
|
| |
|

|
Güvenlik Kodu |
 |
4740 Görüntülenme |
Merhabalar.Yine geçende bir forumda soruldu ve yine cevabını buradan vermek istedim.Çünkü bizim amacımız herkese faydalı olabilmek.Olay çok basit.Bir form girişinde bir alan daha belirtiyorsunuz.Örneğin bir üye girişinde genelde 2 form alanı vardır.Kullanıcı Adı & şifre buna bir de Güvenlik alanı ekliyoruz ve diğer sayfada güvenlik şifresini kontrol ediyoruz.Uygulama 2 asp dosyasından oluşmakta.Kod üzerinde küçük oynamalarla kendinize göre düzenleyebilirsiniz.
Form.asp
___________________________________________________________
<%
'Güvenlik parolasının uzunluğunu 1. satırdan
'Parola içinde harf olup olmayacağını 2. satırdan
'Parola içinde sayı olup olmayacağını 3. satırdan
'Ayarlıyoruz bu arada 1 evet 2 hayır anlamına geliyor (2. & 3. satırlar için)
ParolaUzunluk=5
strHarf=1
strSayi=1
'Burada karmaşık bir şifre üretecek fonksiyonumuz var
Function SifreUret(KarekterMiktari, RakamOlacakmi, strHarf)
Harfler=Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z")
Rakamlar=Array("1","2","3","4","5","6","7","8","9")
If RakamOlacakmi = "1" AND strHarf = "1" Then
Kontrol = "3"
Elseif RakamOlacakmi = "1" Then
TempK = "2"
Elseif strHarf = "1" Then
TempK = "1"
End if
i = DatePart("s", Now)+2 : do while i > j : j=DatePart("s", Now) : loop
Randomize Timer
For I = 1 To INT(KarekterMiktari)
If Kontrol = "3" Then TempK = Int((Rnd * 2) + 1)
If TempK = 1 Then
TempPass = TempPass & "" & Harfler(Int((Rnd * 25) + 0))
Elseif TempK = 2 Then
TempPass = TempPass& "" & Rakamlar(Int((Rnd * 9) + 0))
End if
Next
SifreUret = TempPass
End Function
'şifre üreten fonksiyonumuz bitiyor
'Üretilen şifreyi Ekrana Yazdıracağımız Fonksiyonumuz
Function ParolaYazdir(Veri)
for i = 1 to Len(Veri) : TH = Mid(Veri,i,1)
response.write "" & TH &""
next
end function
'Bu Fonksiyonumuzda Bitiyor
'Session nesnemize şifremizi atıyoruz & sonra yazdırıyoruz
Session("Parola") = SifreUret(ParolaUzunluk,strSayi,strHarf)
ParolaYazdir Session("Parola")
%>
<FORM ACTION="kontrol.asp" METHOD="get">
Lütfen yukarıdaki güvenlik kodunu aşağıdaki alana yazınız.<BR>
<INPUT TYPE="text" NAME="frmParola" SIZE="20"><INPUT TYPE="submit">
</FORM>
Gördüğünüz gibi form.asp sayfasının yapısı bu şekilde.Fonksiyonları anlamasanızda olur önemli olan ben bu sayfada işlemi normal yazı şeklinde yazdırdım.Siz belki resim şeklinde yazdırmak isteyebilirsiniz.Ya da sitenizin tasarımına uygun bir hale getirmek isteyebilirsiniz.ışte bu durumları "ParolaYazdir" Fonksiyonundan düzenliyoruz.Ve orda görmüş bulunduğunuz TH kelimesi her bir parola karakterini temsil ediyor.Yani bunu resimle yapmak isterseniz oraya;
<img src=resim_"& TH &".gif>
gibi bir ifade kullanmanız gerekecek.Peki buradan gelen formu nasıl kontrol edeceğiz.
Kontrol.asp
___________________________________________________________
<table width="100%">
<tr>
<td width="50%">Yazmanız Gereken Parola</td>
<td width="50%"><%=Session("Parola")%></td>
</tr>
<tr>
<td width="50%">Yazdığınız Parola</td>
<td width="50%"><%=request("frmParola")%></td>
</tr>
<tr>
<td width="100%" colspan="2"><b><%
If Request("frmParola")=Session("Parola") Then
Response.Write "<font size=""5"" color=""#008000"">Denetimi Geçti</font>"
Else
Response.Write "<font size=""5"" color=""#FF0000"">Denetimi Geçemedi</font>"
End If
%></b>
</td>
</tr>
</table>
ışte bu kadar.ıncelediğiniz zaman kodu anlayacağınıza eminim ancak anlayamayacağınızı varsayaraktan "Forum" köşemiz olduğunu hatırlatıyorum.Gelecek yazılarda görüşebilmemiz dileği ile hoşçakalın arkadaşlar.Bu arada hepinizin Mübarek Kurban bayramını kutlarım. |
|
|
|
|
|
| |
|
Bu içerik hakkında 7 yorum yapılmış |
|
|
|
|
|
|
| Yorumlar(7) |
Not : Yorumlar zamana göre
son yorumdan ilk yoruma doğru(azalan) biçimde sıralanmıştır. Yorumlarınız site yöneticileri tarafından onaylandıktan sonra eklenecektir. |
|
+ arkadaşım iki if açmışsın ama kapatmamışsın..
If Kontrol = "3" Then TempK = Int((Rnd * 2) + 1)
If TempK = 1 Then
TempPass = TempPass & "" & Harfler(Int((Rnd * 25) + 0))
Elseif TempK = 2 Then
TempPass = TempPass& "" & Rakamlar(Int((Rnd * 9) + 0))
End if
hata veriyo bendeç
|
| Yazan : wmismail | Zaman : 10 Aralık 2007 Pazartesi, Saat 12:18 |
|
|
| + ben sizin kodlarınızı bir yorum sisetemine entegre etmeye çalıştım oldu ama kodu bir kere yazdıktan sonra aynı kodla yine gönderiyor.her gönderme yaptıktan sonra geriye tıklayıp tekrar kod yazmadan sessiondaki kodla gönderiyor yani bu şekilde flood yapılır.Bu sorunu nasıl çözebilirim |
| Yazan : TheQexw | Zaman : 8 Eylül 2007 Cumartesi, Saat 01:21 |
|
|
+ ><%
If Request("frmParola")=Session("Parola") Then
Response.Write "<font size=""5"" color=""#008000"">istedigin sayfanı buraya açıyorsun.........
Else
Response.Write "<font size=""5"" color=""#FF0000"">buraya ister bir not yaz istersende response.redirect yaparak geldigin sayfaya geri gonder</font>"
End If
%> |
| Yazan : sevimsiz | Zaman : 17 Nisan 2006 Pazartesi, Saat 17:12 |
|
|
| + Öncelikle teşekkürler. Bir sorum olacak. Siteme bu kodları ekleyeceğim ancak şöyle bir şey yapmak istiyorum. Güvenlik kodu doğruysa belirli bir sayfanın açılmasını nasıl yapabilirim? |
| Yazan : berk atay | Zaman : 15 Nisan 2006 Cumartesi, Saat 14:44 |
|
|
|
|
|
|