تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Aug 2005-
#1 (permalink)  
[نقاش] هل يمكن أن أحتال السيرفر برمجياً ؟


السلام عليكم ورحمة الله وبركاته

أحبتي موضوعنا هذا اليوم هو عبارة عن معرفة حيل البرمجة في تجاوز بعض خصائص السيرفر

مثلاً .. خاصية allow_url_fopen = off ..

كيف يمكن أن أحتال على السيرفر أو بالأصح على الخاصية بعمل دالة يقوم بجلب السورس لصفحات خارج نطاق موقعك ؟

امممممممممم .. أعطيكم مثال

عند إغلاق خاصية الـ allow_url_fopen هل بإمكاني أن أتحايل على السيرفر باستخدام دالة مشابه لدالة file_get_contents أو file أو readfile ويقوم بعملها بنجاح ؟


هل في إمكانية لذلك ؟ أم أن هذا مستحيلاً بعيد المنال ؟

مع أني أملك سيرفر وأستطيع فتح تلك الخاصية لكن أريد أن أتعلم وأتعمق أكثر في كل مايخص الـ php من جميع النواحي


بانتظار آراءكم






مدمن نت غير متواجد حالياً   قديم 01-02-2008, 11:01 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Oct 2003-
#2 (permalink)  

في الحقيقة واجهتني هذه المشكلة واضطررت لإستخدام مكتبة curl وهي بالتأكيد اسرع من fopen

PHP: CURL - Manual






__________________
سكربت الدروس العربي 4.0
شرح سريع للـOpenSearch
قوالب WordPress
تم بحمد الله الإنتهاء من سكربت الدروس العربي 4.0
http://www.saphplesson.org
Mr.Saphp غير متواجد حالياً   قديم 02-02-2008, 12:52 AM
رد مع اقتباس
Moderator
تاريخ التسجيل: Aug 2004-
#3 (permalink)  

ايوة .. الCURL هو افضل طريقة واسرعها






__________________
هلابي افضل المواقع العربية تصميماً
انصح باستخدام ابونتو

التعديل الأخير تم بواسطة : ncE بارع Pri بتاريخ 02-02-2008 الساعة 03:07 AM. سبب آخر: حذف عبارة غير لائقة !
hilaby غير متواجد حالياً   قديم 02-02-2008, 01:09 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2005-
#4 (permalink)  

طيب واذا كان مكتبة curl غير موجودة لدي ؟

مكتبة curl غير مثبتة + تعطيل دالة allow_url_fopen ..

مالعمل حينها ؟

طبعاً لاطريق غير برمجة دالة تقوم بالتحايل على السيرفر


لكن هل في إمكانية لذلك أم لا .. فقط أود الإجابة على هذا السؤال ..

______________________

فكرة لم تطرأ على بالي ؟؟

هل يمكن للـ htaccess أن تقوم بالتحايل على السيرفر لفتح خاصية معينة مثل register_globals او allow_url_fopen ؟

لكن المشكلة ان هناك بعض السيرفرات لاتتيح استخدام htaccess كما تريد


لذلك الحل الأمثل هو الإستعانة ببرمجة دالة تؤدي الغرض
أكرر،
هل في إمكانية لذلك أم لا ؟






مدمن نت غير متواجد حالياً   قديم 02-02-2008, 01:11 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2005-
#5 (permalink)  

الموضوع هذا يا إخوان قد يساعد مبرمجي السكربتات في جعل برمجياتهم تعمل على اغلب السيرفرات إن لم تكن كلها .. ودون أية مشاكل


أتحفونا بخبراتكم احبتي .. فلا خير في كاتم العلم






مدمن نت غير متواجد حالياً   قديم 02-02-2008, 01:16 AM
رد مع اقتباس
Moderator
تاريخ التسجيل: Aug 2004-
#6 (permalink)  

اذا مرة صار عندك شوية جنون برمج بال sockets
PHP: fsockopen - Manual
PHP: Sockets - Manual

الطريقة سهلة .. وذا قلت ان لايوجد للsocket مكان .. اذاً انت مستضيف ماعندك سالفة هاهاهاها






__________________
هلابي افضل المواقع العربية تصميماً
انصح باستخدام ابونتو
hilaby غير متواجد حالياً   قديم 02-02-2008, 01:54 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2005-
#7 (permalink)  

ممممممممممم عذراً إن قلت لا أفقه شيئاً في الـ sockets

هل من شرح له لو بسيط أستاذي hilaby ؟






مدمن نت غير متواجد حالياً   قديم 02-02-2008, 02:28 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Oct 2003-
#8 (permalink)  

لا يوجد طريقة للتحايل ولكن قم بتجربة الدوال تدريجياً بحيث تتحقق انه يمكن استخدامها على السيرفر ومن ثم استخدمها

وانا افضل الترتيب التالي :
curl
fsockopen
fopen






__________________
سكربت الدروس العربي 4.0
شرح سريع للـOpenSearch
قوالب WordPress
تم بحمد الله الإنتهاء من سكربت الدروس العربي 4.0
http://www.saphplesson.org
Mr.Saphp غير متواجد حالياً   قديم 02-02-2008, 03:09 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2005-
#9 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة Mr.Saphp مشاهدة المشاركة
لا يوجد طريقة للتحايل ولكن قم بتجربة الدوال تدريجياً بحيث تتحقق انه يمكن استخدامها على السيرفر ومن ثم استخدمها

وانا افضل الترتيب التالي :
curl
fsockopen
fopen
بالعكس يوجد هناك تحايل

مثل دالة file_get_contents التي لاتعمل في إصدارات الـ PHP الأقل من 4.3.0 بإمكانك الاستعاضة عنها بتلك الدالة :



كود PHP:
if (!function_exists('file_get_contents'))
{
    function 
file_get_contents($filename$incpath false$resource_context null)
    {
        if (
false === $fh fopen($filename'rb'$incpath))
        {
            
trigger_error('file_get_contents() failed to open stream: No such file or directory'E_USER_WARNING);
            return 
false;
        }

        
clearstatcache();

        if (
$fsize = @filesize($filename))
        {
            
$data fread($fh$fsize);
        }
        else
        {
            
$data '';
            while (!
feof($fh))
            {
                
$data .= fread($fh8192);
            }
        }

        
fclose($fh);
        return 
$data;
    }

لكن ذلك لاتنفع مع تعطيل خاصية allow_url_fopen

أما في حالة تركيب مكتبة curl فالحل هو بالدالة التالية :

كود PHP:
function opensource($url)
{
    
$ch curl_init();

    
curl_setopt ($chCURLOPT_URL$url);
    
curl_setopt ($chCURLOPT_HEADER0);

    
ob_start();

    
curl_exec ($ch);
    
curl_close ($ch);
    
$string ob_get_contents();

    
ob_end_clean();

    return 
$string;


لكن في حالة تعطيل خاصية allow_url_fopen + عدم تنصيب مكتبة curl فإن الحل الوحيد هو البرمجة بالـ sockets كما قال hilaby ؟؟
وأتمنى أن يضع لنا دالة تعمل لذلك الغرض ..






مدمن نت غير متواجد حالياً   قديم 02-02-2008, 03:27 AM
رد مع اقتباس
Moderator
تاريخ التسجيل: Aug 2004-
#10 (permalink)  

Del






__________________
هلابي افضل المواقع العربية تصميماً
انصح باستخدام ابونتو
hilaby غير متواجد حالياً   قديم 02-02-2008, 03:35 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Oct 2003-
#11 (permalink)  

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

مثل دالة file_get_contents التي لاتعمل في إصدارات الـ PHP الأقل من 4.3.0 بإمكانك الاستعاضة عنها بتلك الدالة :



كود PHP:
if (!function_exists('file_get_contents'))
{
    function 
file_get_contents($filename$incpath false$resource_context null)
    {
        if (
false === $fh fopen($filename'rb'$incpath))
        {
            
trigger_error('file_get_contents() failed to open stream: No such file or directory'E_USER_WARNING);
            return 
false;
        }

        
clearstatcache();

        if (
$fsize = @filesize($filename))
        {
            
$data fread($fh$fsize);
        }
        else
        {
            
$data '';
            while (!
feof($fh))
            {
                
$data .= fread($fh8192);
            }
        }

        
fclose($fh);
        return 
$data;
    }

لكن ذلك لاتنفع مع تعطيل خاصية allow_url_fopen
لذا يبدو لي أن الحل الوحيد في حالة تعطيل تلك الخاصية هو البرمجة بالـ sockets كما قال hilaby ؟؟
وأتمنى أن يضع لنا دالة تعمل لذلك الغرض ..
عذرا اخي الكريم ولكن الكود السابق الذي قمت بوضعه لم يتحايل على السيرفر وانما تحقق من وجود الدالة file_get_contents على السيرفر واذا لم تكن موجودة استعاض عنها بدالة fopen

وهذا ما كنت اقصده في ردي السابق

فانت في البداية تتحقق من مكتبة curl إذا كانت موجودة فاستخدمها ولا يوجد لديك اي مشكلة لكن اذا لم تكن موجودة فانتقل إلى fsockopen ومن ثم fopen وهكذا

اتمنى انني قد وضحت الفكرة






__________________
سكربت الدروس العربي 4.0
شرح سريع للـOpenSearch
قوالب WordPress
تم بحمد الله الإنتهاء من سكربت الدروس العربي 4.0
http://www.saphplesson.org
Mr.Saphp غير متواجد حالياً   قديم 02-02-2008, 03:35 AM
رد مع اقتباس
Moderator
تاريخ التسجيل: Aug 2004-
#12 (permalink)  

هذا درس للcurl و fopen و fsocket
PHP Read Remote File

الfsocket هو الاكثر تعقيدا، لانها تنزل الى مستوى البروتوكول نفسة، اي انك تتحكم بالبيانات و طريقة ارسالها. اذا لم تفهموة قولولي لاشرح على الكود الموجود في ذالك الصفحة






__________________
هلابي افضل المواقع العربية تصميماً
انصح باستخدام ابونتو
hilaby غير متواجد حالياً   قديم 02-02-2008, 03:41 AM
رد مع اقتباس
مشرف قسم PHP
تاريخ التسجيل: Apr 2002-
#13 (permalink)  

اعتقد ان هذه الكود سيعمل على اي حال http://daif.net/script/sfopen.php






__________________
I Love PHP (d4d@hotmail.com)
http://www.daif.net/
daif غير متواجد حالياً   قديم 03-02-2008, 08:37 PM
رد مع اقتباس
رد


 

أدوات الموضوع

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

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


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
طريقة عمل سيرفر شبكات بأستخدام Ubuntu مرعوب الشبكات والخوادم في نظام لينكس 18 18-05-2008 11:55 PM
كيف يمكن استخراج عنوان الملف على السيرفر Lamyaa PHP 5 09-12-2003 08:20 AM
كيف يمكن اظهر نوع السيرفر FastCode PHP 0 07-09-2003 01:25 PM
هل يمكن تشغسل الCGI على السيرفر الشخصي Naif تطوير الويب 3 11-12-2002 02:08 PM
السيرفر الداخلي مهم جدا.... لاتطنشووووون لوسمحتم zom إصلاح وصيانة المنتديات 5 29-01-2002 06:15 AM


الساعة الآن: 04:52 AM بتوقيت المملكة العربية السعودية