"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تقوم بتخزين مصفوفات PHP في ملفات تعريف الارتباط وما هي أفضل الممارسات للأمان والتسلسل؟

كيف تقوم بتخزين مصفوفات PHP في ملفات تعريف الارتباط وما هي أفضل الممارسات للأمان والتسلسل؟

تم النشر بتاريخ 2024-11-08
تصفح:624

How do you store PHP arrays in cookies and what are the best practices for security and serialization?

تخزين مصفوفات PHP في ملفات تعريف الارتباط

في PHP، يمكن تخزين المصفوفات في ملفات تعريف الارتباط لسهولة استرجاعها عند الطلبات اللاحقة. ومع ذلك، فمن الضروري مراعاة الآثار الأمنية واستخدام تقنيات التسلسل المناسبة.

خيارات التسلسل

لتحويل المصفوفة إلى تنسيق متوافق مع ملفات تعريف الارتباط، يمكنك الاختيار من بين الطرق التالية:

JSON

setcookie('your_cookie_name', json_encode($info), time() 3600);

implode/explode

هذه الطريقة يكون فعالًا للمصفوفات التي تتكون فقط من أعداد صحيحة:

$encodedArray = implode(',', $info);
setcookie('your_cookie_name', $encodedArray, time() 3600);

تحذير: تجنب استخدام التسلسل/إلغاء التسلسل بسبب المخاطر الأمنية المحتملة.

طريقة بديلة: غير -التسلسل

الخيار البديل هو تخزين عناصر المصفوفة بشكل فردي في ملفات تعريف ارتباط منفصلة:

setcookie('my_array[0]', 'value1' , time() 3600);
setcookie('my_array[1]', 'value2' , time() 3600);
setcookie('my_array[2]', 'value3' , time() 3600);

عند طباعة المتغير $_COOKIE، فإنه سيحتوي على المصفوفة كما يلي:

echo '<pre>';
print_r( $_COOKIE );
die();
Array
(   
    [my_array] => Array
        (
            [0] => value1
            [1] => value2
            [2] => value3
        )

)

هذا النهج غير التسلسلي هو ميزة PHP موثقة تقوم بتخزين أسماء ملفات تعريف الارتباط كأسماء مصفوفات، مما يسمح باسترجاعها كمصفوفات في نصوص PHP النصية.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3