السلام عليكم ورحمة الله وبركاته
بعد بحث طويل في المواقع العربية والأجنبية وجدت شفرة لـ JavaScript تقوم بانشاء متحكم ActiveX يقوم بجمع معلومات عن كرت الشبكة لمتصفح الموقع والمهم في الموضوع انه يظهر العنوان الفيزيائي لكرت الشبكة MAC Address مع معلومات اخرى مفيدة وهذه الميزة يمكن استخدامها في الناحية الأمنية لحماية بعض المواقع بحيث يمكن تحديد صلاحيات الدخول عن طريق العنوان الفيزيائي لكرت الشبكة.
هذه الطريقة يمكن ان تفيد في الاستغناء عن طرق التأكد من المستخدم الحقيقي في البرامج التي تستخدم الذكاء الاصطناعي في البرامج المصممة بلغة PHP او ASP.<<< موضوع طويل ومعقد للغاية.
ايجابيات معرفة عنوان الشبكة الفيزيائي (MAC Address):
1- لا يمكن تغيير العنوان الفيزيائي للشبكة وهو عنوان فريد لا يمكن ان يتكرر لهذا فهي طريقة فعالة للتأكد من المستخدم.
2- توفير الوقت والجهد والمال في حماية اجزاء المواقع المهمة.
3- تغني عن استخدام طريقة الحظر عن طريق عنوان الانترنت IP Address او عن طريق الجلسة Session او عن طريق الكوكيز حيث يمكن تعديلها والتحايل على النظام، فيكون الحظر عن طريق عنوان ثابت فريد من نوعة لا يتغير وهو العنوان الفيزيائي لكرت الشبكة.
سلبيات استخدام عنوان الشبكة الفيزيائي في امن المواقع:
1- اذا كان المستخدم لديه اكثر من جهاز او يعمل كل مرة من جهاز مختلف مثلاً ان يعمل من مقهى للإنترنت.
2- يمكن تغيير كرت الشبكة الذي لا يكلف مبالغ مادية تذكر يتغير معه العنوان الفيزيائي للكرت.
3- هذا الكود لا يعمل الا على انظمة ويندوز فقط ولا اعلم هل يعمل على متصفحات Internet Explorer فقط او يعمل على جميع المتصفحات. (لانه يستخدم متحكمات ActiveX التي لا يدعمها الا انظمة تشغيل مايكروسوفت)
ويمكن تفادي هذه السلبيات باستخدام تقنيات الذكاء الإصطناعي في التطبيقات المستخدمة.
الكود التالي يظهر المعلومات للمستخدم فقط ويمكن تعديل الكود بحيث يرسل المعلومات لتخزن في قاعدة بيانات على السيرفر او تخزينها في ملف XML ثم التحقق من المستخدم في كل مرة يتم الدخول بها الى النظام او ارسال المعلومات الى بريد الكتروني محدد او غيرها من الطرق التي تفيد في تحديد الشخصية بجانب كلمة المرور.
<script LANGUAGE="javascript">
function Button1_onclick() {
var locator = new ActiveXObject
"WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Caption + "</td>");
document.write("<td>" + p.IPFilterSecurityEnabled + "</td>");
document.write("<td>" + p.IPPortSecurityEnabled + "</td>");
document.write("<td>" + p.IPXAddress + "</td>");
document.write("<td>" + p.IPXEnabled + "</td>");
document.write("<td>" + p.IPXNetworkNumber + "</td>");
document.write("<td>" + p.MACAddress + "</td>");
document.write("<td>" + p.WINSPrimaryServer + "</td>");
document.write("<td>" + p.WINSSecondaryServer + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
function dispHeading()
{
document.write("<thead>");
document.write("<td>Caption</td>");
document.write("<td>IPFilterSecurityEnabled</td>");
document.write("<td>IPPortSecurityEnabled</td>");
document.write("<td>IPXAddress</td>");
document.write("<td>IPXEnabled</td>");
document.write("<td>IPXNetworkNumber</td>");
document.write("<td>MACAddress</td>");
document.write("<td>WINSPrimaryServer</td>");
document.write("<td>WINSSecondaryServer</td>");
document.write("</thead>");
}</SCRIPT>
اتمنى تجربة الكود واعلامي بالنتائج لاني لم اقم بتجربته لعدم امتلاكي لجهاز فيه نظام تشغيل ويندوز.
جربته على نظام الماكنتوش واللينكس ولم تظهر اي نتيجة اتمنى ان أرى نتائجه على انظمة الويندوز وعلى متصفحات مختلفة مثل FireFox وغيرها.
مصدر الكود:
اضغط هنا للذهاب الى صفحة الكود
اتمنى منكم نشر الموضوع ولا يهم ذكر مصدر الموضوع حيث انه للإفادة وليس للشهرة :wink:
ولكم مني اطيب الدعوات بالتوفيق والسداد.