إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...

انضم الينا
استراحات زايد الصفحة الرئيسية

         :: معنى الحمل في المنام للعزباء (آخر رد :نوران نور)       :: تفسير حلم الولد للمطلقة (آخر رد :نوران نور)       :: تفسير حلم الطعن بالسكين (آخر رد :نوران نور)       :: التداول والأسهم: دليل شامل (آخر رد :محمد العوضي)       :: ما هي الأسهم؟ (آخر رد :محمد العوضي)       :: توكيل ata: الجودة والاحترافية في خدمات الصيانة (آخر رد :مصطفيي)       :: افضل شركة وساطة (آخر رد :doaa nile7)       :: صيانة تورنيدو مصر: الجودة والاعتمادية في خدمة العملاء (آخر رد :مصطفيي)       :: كورس تحسين محركات البحث (seo) للمبتدئين (آخر رد :حسن سليمة)       :: رحلة انقاص وزنك تبدأ مع الرشاقة السعيدة (آخر رد :دارين الدوسري)      

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 01-10-2012, 12:40 PM
عضو ماسي
بيانات محروم.كوم
 رقم العضوية : 503
 تاريخ التسجيل : Dec 2007
الجنس : female
علم الدوله :
 المشاركات : 2,100,611
عدد الـنقاط :3341
 تقييم المستوى : 2139

السلآم عليكم ..!

اليوم قلت أشرح لكم درس مهم من دروس الحماية وهو نظام الـ captcha أو المعروف بالتحقق البشري !

^ عبارة عن نظام يكون رقم عشوائي على صورة ويتحقق من إدخال ما بداخل الصورة من أحرف وأرقام ~

الشرح رآح يكون عالسريع :nosweat:

أولآ لنقوم بعمل فورم لإدخال البيانات "index.php" :

رمز PHP:






Captcha









&
nbsp;






&
nbsp;



كما تشاهدون في الملف أكواد جافا + كود إستدعاء لملف أجاكس :bigsmile:

^ إن وجدت مسافات قم بحذفها :cupidarrow:

الآن العمل الجدي ومهو ملف "create_image.php" والذي يقوم بتوليد الصورة الخاصة بالتحقق :

رمز PHP:


أولآ الملف بدأناه بـ جلسة جديدة لكي يكون التحقق بالكوكيز أي الجلسات :bigsmile:

وقمت بعمل دالة تقوم بعمل رمز عشوائي ومكون من حروف وأرقام + لم أضف حرف الـ "o" لكي لآ يكون هناك أغلاط أو تشابه مع رقم الـ "0" الصفر !


هناك أيضا الطريقة التقليدية وهي تكوين الرمز بإستعمال تشفير الـ "MD5" ولكي تقوم باستمالها فقط أزل "//" قبلها كالتالي :

رمز PHP:
$md5_hash = md5(rand(0,999));


وأيضا يجب إزالة "//" من امام المتغير "security_code" لصبح كالتاالي :
رمز PHP:

// $security_code = substr($md5_hash, 15, 8);
$security_code = substr($activatecode, 15, 8);


وفي البداية قلت رآح نتحقق عبر نظام الجلسات وهنا كود يوضح كلآمي :

رمز PHP:
$_SESSION["security_code"] = $security_code;


في الكود السابق جعلنا الرمز العشوائي في الجلسة المسماه بإسم "security_code"

وأيضا هناك كود عمل الصورة !

وأيضا بنها كود قمت بحجبه وهو كود لعمل خطوط على الأحرف ليكون التأكد أقوى ولآ أرى أن له لزمة ولتفعيها هذا نقوم بإزالة "//" من كل سطر كالتالي :

رمز PHP:
ImageRectangle($image,0,0,$widt h-1,$height-1,$grey);
imageline($image, 0, $height/2, $widt h, $height/2, $grey);
imageline($image, $widt h/2, 0, $widt h/2, $height, $grey);


الآن النظام كآمل والكمآل لله وحده !

نأتي لطريقة التأكد في الصفحات المراد حمايتها ولتكن باسم "captcha" :

رمز PHP:



كما هو وآضح قمنا بعمل جلسة جديدة !

وتحققنا إن كان طلب الصفحة كان عبر "POST" وليس "GET" بهذا الكود :

رمز PHP:
if ($_SERVER["REQUEST_METHOD"] "POST")
die(
"You can only reach this page by posting from the html form");


الآن نقوم بالتحقق إن كان تم إدخال الرموز في الحقل المخصص وهذا المدخل يساوي الجلسة المخصصة التي قمنا بها !
وأيضا إن كان الحقلآن غير فارغان وأقصد بهما حقل الجلسة وحقل الرمز للتحقق !!

وهذا هو الكود :

رمز PHP:
if ( ($_REQUEST["txtCaptcha"] == $_SESSION["security_code"]) &&
(!empty(
$_REQUEST["txtCaptcha"]) && !empty($_SESSION["security_code"])) )



الآن قمنا بعمل كود التحقق وإن تم تحقق الشرط إطبع التالي :

رمز PHP:
Test successful!


وإن لم تتحقق الشروط إطبع التالي :

رمز PHP:
Test failed! Try again!


جميل الآن إنتهينا من كل شي تقريبا وبقي ملفات الجافا !

طبعا لن أقوم بشرحها ولآكن طريقة عملها تقوم بجلب صفحة التحقق والصورة بعد كل تحقق :nosweat:

الملف "ajax_captcha.js" :

رمز PHP:
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
if (
windo w.XMLHttpRequest) {
return new
XMLHttpRequest(); //Mozilla, Safari ...
} else if (windo w.ActiveXObject) {
return new
ActiveXObject("Microsoft.XMLHTTP"); //IE
} else {
//Display our error message
ale rt("Your browser doesn't support the XmlHttpRequest object.");
}



}
//Our XmlHttpRequest object
var receiveReq = getXmlHttpRequestObject();
//Initiate the AJAX request
function makeRequest(url, param) {
//If our readystate is either not started or finished, initiate a new request
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
//Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
receiveReq.open("POST", url, true);
//Set the function that will be called when the XmlHttpRequest objects state changes
receiveReq.onreadystatechange = updatePage;

//Add HTTP headers to the request
receiveReq.setRequestHeader("Conten t-type", "application/x-www-form-urlencoded");
receiveReq.setRequestHeader("Conten t-length", param.length);
receiveReq.setRequestHeader("Connection", "close");

//Make the request
receiveReq.send(param);
}
}
//Called every time our XmlHttpRequest objects state changes
function updatePage() {
//Check if our response is ready
if (receiveReq.readyState == 4) {
//Set the conten t of the DIV element with the response text
documen t.getElementById('result').innerHTML = receiveReq.responseText;
//Get a reference to CAPTCHA image
img = documen t.getElementById('imgCaptcha');
//Change the image
img.src = 'create_image.php?' + Math.random();
}
}

//Called every time when form is perfomed
function getParam(theForm) {
//Set the URL
var url = 'captcha.php';
//Set up the parameters of our AJAX call
var postStr = theForm.txtCaptcha.nam e + "=" + encodeURIComponent( theForm.txtCaptcha.value );

//Call the function that initiate the AJAX request
makeRequest(url, postStr);
}


قم بحفظة في نفس المجلد !

الآن قم بإستعرآض الملف "index.php" وأخبرني برأيك في نظام التحقق :bigsmile:

مهم يوجد مسافات ببعض الكلمات والسبب يعود للفلترة في الموقع وقريبا سوف أقوم بإلغائها لنعطي المجآل للمبرمجين :d

الاكواد شبه منقولة .. أتمنى حفظ الحقوق عند النشر !


HaNniBaL KsA
www.r00t-s3c.com
__DEFINE_LIKE_SHARE__
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
بلاك بيري تورش 9860 فل تتش مع بن ممير """""""""""""""""""""" محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 10-28-2011 11:00 AM
"مايكروسوفت" تكشف تفاصيل نظام التشغيل الجديد "Windows 8" محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 09-16-2011 02:30 AM
[iPhone] "آبل" تعين "هاكر" مختص باختراق نظام iOS محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 08-29-2011 03:20 AM
"""""""""""""""""""""""""""فساتين زفاف راقية ومميزة """"""""""&am محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 07-13-2010 12:00 AM
"دو" تطلق نظام "تعرفة واحدة تجمع العالم" الجديد لتعرفات التجوال الدولي محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 06-10-2009 02:00 AM


الساعة الآن 12:52 PM


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir

RSS RSS 2.0 XML MAP HTML