• 07-07-2010, 20:48:29
    #1
    Üyeliği durduruldu
    Arkadaşlar merhaba
    Sql injection için bir koruma düzeni hazırladım fakat sisteme adapte edemedim.

    Guvenlik.Asp dosyasının içeriği

    <%
    Function Temizle(strVeri)
    
    '|======================================
    '| SQL Injection'dan Korunma Fonksiyonu
    '| mydesign ****.a doronty37
    '| http://www.mydesign.gen.tr
    '| mydesign@mydesign.gen.tr
    '|======================================
    
          '// Eğer Değişken Boşsa Fonksiyondan Çıkılıyor
         If strVeri = "" Then Exit Function
    
          '// Zararlı Kodlar Burada Ayıklanıyor
         strVeri = Replace(strVeri, "<", "&lt;")
         strVeri = Replace(strVeri, ">", "&gt;")
         strVeri = Replace(strVeri, "[", "[")
         strVeri = Replace(strVeri, "]", "]")
         strVeri = Replace(strVeri, """", "", 1, -1, 1)
         strVeri = Replace(strVeri, "=", "=", 1, -1, 1)
         strVeri = Replace(strVeri, "'", "''", 1, -1, 1)
         strVeri = Replace(strVeri, "select", "select", 1, -1, 1)
         strVeri = Replace(strVeri, "join", "join", 1, -1, 1)
         strVeri = Replace(strVeri, "union", "union", 1, -1, 1)
         strVeri = Replace(strVeri, "where", "where", 1, -1, 1)
         strVeri = Replace(strVeri, "insert", "insert", 1, -1, 1)
         strVeri = Replace(strVeri, "delete", "delete", 1, -1, 1)
         strVeri = Replace(strVeri, "update", "update", 1, -1, 1)
         strVeri = Replace(strVeri, "like", "like", 1, -1, 1)
         strVeri = Replace(strVeri, "drop", "drop", 1, -1, 1)
         strVeri = Replace(strVeri, "create", "create", 1, -1, 1)
         strVeri = Replace(strVeri, "modify", "modify", 1, -1, 1)
         strVeri = Replace(strVeri, "rename", "rename", 1, -1, 1)
         strVeri = Replace(strVeri, "alter", "alter", 1, -1, 1)
         strVeri = Replace(strVeri, "cast", "cast", 1, -1, 1)
    
         Temizle = strVeri
    
    End Function
    %>

    Ve bunu login_verify dosyasında kullanmak istiyorum.
    login_verify dosyasının içeriği
     
    <!--#include file="variables.asp"-->
    
    <!--#include file="guvenlik.asp"-->
    
    <%'Check if the login and password exist. If yes then login otherwise error.
    open_recordset	rs_getAdmin,"select * from admin where login = '"&request.form("login")&"' and password = '"&request.form("password")&"' " 
    
    if rs_getAdmin.eof then
    	open_recordset	rs_getInfo,"select active,id,pending from members where login = '"&request.form("login")&"' and password = '"&request.form("password")&"' " 
    	if not rs_getInfo.eof then 
    		if rs_getInfo("pending") <> true then
    			session("userid") = rs_getInfo("id")
    			response.redirect "index.asp"
    		else
    			response.redirect "login.asp?error=2"
    		end if
    	else
    		response.redirect "login.asp?error=1"
    	end if
    	rs_getInfo.close
    	set rs_getInfo = nothing
    else	
    	session("admin") = "1"
    	response.redirect "admin.asp"
    end if
    
    rs_getAdmin.close
    set rs_getAdmin = nothing
    
    conn.close
    set conn = nothing%>


    Bir türlü adapte edemedim. Yardımcı olursanız çok sevinirim. Şimdiden teşekkürler.
  • 07-07-2010, 20:53:20
    #2
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    Request.form ların önüne koyucaksın hocam.

    Temizle(request.form("password")) gibi
  • 07-07-2010, 21:24:55
    #3
    Üyeliği durduruldu
    <!--#include file="variables.asp"--> 
    
    <!--#include file="guvenlik.asp"--> 
    
    Temizle(request.form("password"))
    
    <%'Check if the login and password exist. If yes then login otherwise error. 
    open_recordset    rs_getAdmin,"select * from admin where login = '"&request.form("login")&"' and password = '"&request.form("password")&"' "  
    
    if rs_getAdmin.eof then 
        open_recordset    rs_getInfo,"select active,id,pending from members where login = '"&request.form("login")&"' and password = '"&request.form("password")&"' "  
        if not rs_getInfo.eof then  
            if rs_getInfo("pending") <> true then 
                session("userid") = rs_getInfo("id") 
                response.redirect "index.asp" 
            else 
                response.redirect "login.asp?error=2" 
            end if 
        else 
            response.redirect "login.asp?error=1" 
        end if 
        rs_getInfo.close 
        set rs_getInfo = nothing 
    else     
        session("admin") = "1" 
        response.redirect "admin.asp" 
    end if 
    
    rs_getAdmin.close 
    set rs_getAdmin = nothing 
    
    conn.close 
    set conn = nothing%>
    <!--#include file="variables.asp"--> 
    
    <!--#include file="guvenlik.asp"--> 
    
    
    <%'Check if the login and password exist. If yes then login otherwise error. 
    open_recordset    rs_getAdmin,"select * from admin where login = '"&request.form("login")&"' and password = '"&Temizle(request.form("password"))&"' "  
    
    if rs_getAdmin.eof then 
        open_recordset    rs_getInfo,"select active,id,pending from members where login = '"&request.form("login")&"' and password = '"&Temizle(request.form("password"))&"' "  
        if not rs_getInfo.eof then  
            if rs_getInfo("pending") <> true then 
                session("userid") = rs_getInfo("id") 
                response.redirect "index.asp" 
            else 
                response.redirect "login.asp?error=2" 
            end if 
        else 
            response.redirect "login.asp?error=1" 
        end if 
        rs_getInfo.close 
        set rs_getInfo = nothing 
    else     
        session("admin") = "1" 
        response.redirect "admin.asp" 
    end if 
    
    rs_getAdmin.close 
    set rs_getAdmin = nothing 
    
    conn.close 
    set conn = nothing%>

    öncelikle cevap için teşekkür ederim.

    Temizle(request.form("password")) için

    hangi kullanım doğru?
  • 07-07-2010, 21:45:50
    #4
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    1. kod hata verir.

    2. koddaki gibi yazıcaksınız fakat onları diğer request. olanlarada uygulamak gerekir. Sitenizde geçen bütün request. ile başlayanlara uygulayın.
  • 08-07-2010, 18:46:15
    #5
    Üyeliği durduruldu
    Teşekkür ederim. 2kodda dediğiniz gibi bütün requestlere uyguladım ve olumlu sonuç aldım
  • 26-07-2010, 18:39:24
    #6
    Üyeliği durduruldu
    yaptığın işlemin aynısını birde request.querystring lerede uygula tam bir koruman olsun sonuçta sql injection sadece textboxlardan yapılmıyor