שלח תשובה

זירת השאלות

432
צפיות
1
תשובות

איך עושים בדיקת LOGings מאובטחת?

,‏ 8 ביולי, 2005

יש לי דף מנהל ודף לקוח.
אני ניסיתי גם עם קוקיז וגם SESSION אבל שומדבר לא פתר לי את הבעיה הבאה:

בכניסה לדף שאדמין מורשה בו ישנו הקוד הבא:


Dim conn, rs, SQLstr
    Set conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    conn.Provider = "Microsoft.Jet.OLEDB.4.0"
    conn.Open Server.MapPath("db/db.mdb")
    SQLstr = "SELECT [userFName], [userIsAdmin] FROM [users] WHERE "
    SQLstr = SQLstr & "[userID] = ‘" & Request.Cookies("user")("userID") & "’"
    
    rs.Open SQLstr,conn
    If rs.EOF Then ‘checks whether the user is still in the Database
    ‘the user is not in the database
        Response.Cookies("user")("login") = False
        Session("login") = False
        Response.Cookies("user")("isAdmin")= False
        Session("isAdmin") = False
    End If
    
    If Request.Cookies("user")("login") Then
        Session("login") = True
        Session("name") = Request.Cookies("user")("name")
        Response.Cookies("user").Expires = DateAdd("yyyy",1,Now())
        If Request.Cookies("user")("isAdmin") Then
            Session("isAdmin") = True
        Else
            Session("isAdmin") = False
            Response.Redirect("Index.asp")
        End If
    Else
        Session("login") = False
    End If

If Session("isAdmin") Then

נראה לי שהקוד מובן כי המשתנים בו וכו’ מייצגים את התוכן שהם מכילים.

אני מתחבר כאדמין ונכנס לדף הזה (שהקוד לעיל מוכל בו): adminListUsers.asp
שהוא של אדמינים בלבד.
אני מתנתק


<%
    Session("login") = False
    Session("isAdmin") = False
    Session.Abandon
    Response.Cookies("user")("login") = False
    Response.Cookies("user")("isAdmin") = False
    Response.Redirect ("index.asp")
%>


ואחרי כן מתחבר כיוזר. אני מגיע לדף של היוזרים.
+++ עד כאן הכל פועל טוב ויפה +++

עכשיו, אם אני נכנס שוב לדף הראשון של האדמינים ( adminListUsers.asp ) אזי הוא מציג לי את הדף שהוא של אדמינים.

נ.ב.
אם אני מחובר כיוזר ולפני זה אני לא מחובר כאדמין אז הוא לא נכנס לי לדף של האדמינים (כמו שצריך) אלא אם כן אני סוגר את הדפדפן או עושה REFRESH.

תודה רבה רבה לעוזרים ואפילו רק למי שקרא (חחחחחחחחחחחחחח) !

תגיות:

1 תשובות

  1. Ice man הגיב:

    פרטים נוספים…
    כשאני מחובר כיוזר אחרי שאני מתחבר ומתנתק מהאדמין ומכניס באופן ידני לשורת הכתובות דף של אדמין שנכנסתי אליו
    מתוך הדפדפן הפעיל אזי גם בשורה הזא:


    שלום
    <% Response.Write(Session("name"))%>

    אזי הוא כותב לי את השם לפי ה SESSION של האדמין שדרכו התחברתי.

    לפי דעתי הוא כאילו שומר את כל הדף איך שהוא הוחזר קודם לכן כשהתקבל מהשרת כי אחרי רענון לדף הכל מסתדר…

שלח תשובה