اذهب إلى المحتوى
  • 0

هل من الآمن تمرير Base64 عبر معاملات GET في PHP؟

Emad Saif

السؤال

أقوم بتمرير نص مشفر بإستخدام Base64 بالشكل التالي:

http://localhost:8080/save?sentance=aGVsbG8sIHdvcmxk

هل قد تحدث مشكلة في المستقبل بسبب تشفير النص بإستخدام Base64 بسبب رموز مثل = + في Base64؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الرموز المستخدمة في base64 هي:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

كل هذه الرموز يمكن إستخدامها في عناوين URL بدون مشكلة ماعدا آخر ثلاثة رموز (+/=) حيث أن لكل واحدٍ منهم له معنى مختلف في عناوين URL، لذلك عليك أن تستبدلهم بعد عملية التشفير برموز أخرى مثل (._-) على سبيل المثال، ويمكنك أن تستخدم base64 في عناوين URL بدون مشكلة من خلال إستخدام الدالة urlencode مع base64_encode على النحو التالي:

<?php

$str = 'Hello, world';
$encoded = urlencode( base64_encode( $str ) );
echo $encoded;	// SGVsbG8sIHdvcmxk

ولفك تشفير النص تستطيع إستخدام الدالة base64_decode مع urldecode على النحو التالي:

<?php

$encoded_str = 'SGVsbG8sIHdvcmxk';
$decoded = base64_decode( urldecode( $encoded_str ) );

echo $decoded;	// Hello, world

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

ليس من الآمن فعل ذلك , بل يجب ان تقوم بعمل اعادة ترميز لعنوان url لأنه من الممكن أن تحتوي سلاسل base64 على الأحرف "+" و "=" و "/" والتي يمكن أن تغير معنى البيانات حيث تبدو كمجلد فرعي أو مسار آخر , يمكنك الاستعانة بالدالتين التاليتين كدوال مساعدة لك 

function base64_url_encode($input) {
 return strtr(base64_encode($input), '+/=', '._-');
}

function base64_url_decode($input) {
 return base64_decode(strtr($input, '._-', '+/='));
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...