السلام عليكم ،،
أستخدم برنامج دعم فني ticket system مبرمج محلياً بلغة ASP ، بحيث يستطيع أي مستخدم إرسال إستفسار ticket ثم تقوم إدارة الموقع بالرد عليه ، المشكلة أن المستخدم بعد ما يدخل باسمه و كلمة المرور يقدر يشوف تيكت مرسل من مستخدم آخر بمجرد وضع رقم التيكت في شيط العنوان ، مثال :
viewticket.asp?status=CLOSE&TID=5648
الـ TID هو رقم التيكيت وبمجرد تغييره إلى أي رقم يمكن الإطلاع على إستفسارات و رسائل الآخرين.
هذا هو محتوى ملف auth.asp :
كود:
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="../errorpage.asp"
MM_grantAccess=false
If Session("LOGIN") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
ويتم إستدعاءه في ملف عرض التيكيت viewticket.asp :
كود:
<!--#include file="auth.asp"-->
كيف ممكن أعالج هذه الثغرة الأمنية ؟ وكيف أوجه الملاقيف و الهاكرز إلى صفحة الخطأ أو صفحة "أنت غير مخول بالإطلاع على هذه الصفحة" ؟