مُشفّر سلسلة URL
أداة ترميز سلسلة URL
مقدمة
في مجال تطوير الويب والاتصالات عبر الإنترنت، تلعب عناوين URL (محددات الموارد الموحدة) دورًا حيويًا في تحديد الموارد على الويب. ومع ذلك، تحتوي عناوين URL على قيود بشأن الأحرف التي يمكن أن تحتويها. بعض الأحرف لها معاني خاصة، بينما يعتبر البعض الآخر غير آمن للاستخدام في عناوين URL بسبب احتمال سوء التفسير أو الفساد أثناء النقل.
يعد ترميز URL، المعروف أيضًا باسم الترميز النسبى، آلية لتحويل الأحرف الخاصة إلى تنسيق يمكن نقله عبر الإنترنت. تتيح لك هذه الأداة إدخال سلسلة URL وترميز الأحرف الخاصة، مما يضمن أن عنوان URL صالح ويمكن تفسيره بشكل صحيح بواسطة متصفحات الويب والخوادم.
فهم ترميز URL
ما هو ترميز URL؟
يتضمن ترميز URL استبدال الأحرف ASCII غير الآمنة بـ %
متبوعًا برقمين ست عشريين يمثلان رمز ASCII للحرف. يضمن ذلك أن المعلومات تُنقل عبر الإنترنت دون تغيير.
على سبيل المثال، يتم استبدال حرف المسافة ' '
بـ %20
.
لماذا يعتبر ترميز URL ضروريًا؟
يمكن إرسال عناوين URL عبر الإنترنت باستخدام مجموعة أحرف ASCII فقط. نظرًا لأن عناوين URL غالبًا ما تحتوي على أحرف خارج هذه المجموعة، يجب تحويلها إلى تنسيق ASCII صالح. يضمن ترميز URL أن الأحرف الخاصة لا تسبب آثارًا غير مقصودة أو أخطاء في طلبات الويب.
الأحرف التي تحتاج إلى ترميز
وفقًا لمواصفة RFC 3986، فإن الأحرف التالية محجوزة في عناوين URL ويجب ترميزها بالنسبة المئوية إذا كان من المقرر استخدامها حرفيًا:
- محددات عامة:
:
,/
,?
,#
,[
,]
,@
- محددات فرعية:
!
,$
,&
,'
,(
,)
,*
,+
,,
,;
,=
بالإضافة إلى ذلك، يجب ترميز أي أحرف غير ASCII، بما في ذلك الأحرف في Unicode.
كيف يعمل ترميز URL؟
عملية الترميز
-
تحديد الأحرف الخاصة: تحليل سلسلة URL وتحديد الأحرف التي ليست أحرف ASCII غير المحجوزة (الحروف، الأرقام،
-
,.
,_
,~
). -
تحويل إلى رمز ASCII: لكل حرف خاص، احصل على نقطة الرمز ASCII أو Unicode.
-
تحويل إلى تسلسل بايت UTF-8 (إذا لزم الأمر): بالنسبة للأحرف غير ASCII، قم بترميز الحرف إلى بايت واحد أو أكثر باستخدام ترميز UTF-8.
-
تحويل إلى ست عشري: تحويل كل بايت إلى معادلته الست عشرية ذات الرقمين.
-
إضافة رمز النسبة المئوية: إضافة علامة
%
أمام كل بايت ست عشري.
مثال على الترميز
-
الحرف:
' '
(مسافة)- رمز ASCII:
32
- ست عشري:
20
- ترميز URL:
%20
- رمز ASCII:
-
الحرف:
'é'
- ترميز UTF-8:
0xC3 0xA9
- ترميز URL:
%C3%A9
- ترميز UTF-8:
حالات خاصة يجب مراعاتها
-
الأحرف Unicode: يجب ترميز الأحرف غير ASCII في UTF-8 ثم ترميزها بالنسبة المئوية.
-
علامات النسبة المئوية المشفرة مسبقًا: يجب عدم إعادة ترميز علامات النسبة المئوية التي هي جزء من الترميزات النسبية.
-
الأحرف المحجوزة في سلسلة الاستعلام: تحتوي بعض الأحرف على معاني خاصة في سلاسل الاستعلام ويجب ترميزها لمنع تغيير الهيكل.
فك ترميز URL
ما هو فك ترميز URL؟
فك ترميز URL هو العملية العكسية لترميز URL. يقوم بتحويل الأحرف المشفرة بالنسبة المئوية إلى شكلها الأصلي، مما يجعل عنوان URL قابلًا للقراءة والتفسير من قبل البشر والأنظمة.
عملية الفك
-
تحديد تسلسلات الترميز بالنسبة المئوية: تحديد جميع رموز
%
التي تليها رقمين ست عشريين في سلسلة URL. -
تحويل الست عشري إلى بايت: ترجمة كل قيمة ست عشرية إلى بايتها المقابلة.
-
فك ترميز بايت UTF-8 (إذا لزم الأمر): بالنسبة لتسلسلات متعددة البايت، دمج البايتات وفك ترميزها باستخدام ترميز UTF-8 للحصول على الحرف الأصلي.
-
استبدال التسلسلات المشفرة: استبدال التسلسلات المشفرة بالنسبة المئوية بالأحرف المفككة.
مثال على الفك
-
مشفر:
hello%20world
%20
تترجم إلى مسافة' '
- مفكك:
hello world
-
مشفر:
J%C3%BCrgen
%C3%A4
تترجم إلى'ü'
في UTF-8- مفكك:
Jürgen
أهمية فك ترميز URL
فك ترميز URL ضروري عند معالجة مدخلات المستخدم من عناوين URL، أو قراءة معلمات الاستعلام، أو تفسير البيانات المستلمة من طلبات الويب. يضمن أن المعلومات المستخرجة من عنوان URL تكون في شكلها الصحيح والمقصود.
حالات الاستخدام
تطوير الويب
-
معلمات الاستعلام: ترميز مدخلات المستخدم في معلمات الاستعلام لمنع الأخطاء أو الثغرات الأمنية.
-
معلمات المسار: تضمين البيانات الديناميكية بأمان في مسارات URL.
نقل البيانات
-
واجهات برمجة التطبيقات وخدمات الويب: ضمان تنسيق البيانات المرسلة إلى واجهات برمجة التطبيقات بشكل صحيح.
-
الدولية: دعم عناوين URL التي تحتوي على أحرف من لغات مختلفة.
الأمان
- منع هجمات الحقن: ترميز المدخلات لتقليل خطر البرمجة النصية عبر المواقع (XSS) وغيرها من هجمات الحقن.
البدائل
بينما يعد ترميز URL ضروريًا، هناك سيناريوهات قد تكون فيها طرق الترميز الأخرى أكثر ملاءمة:
-
ترميز Base64: يستخدم لترميز البيانات الثنائية داخل عناوين URL أو عندما تكون هناك حاجة إلى كثافة معلومات أعلى.
-
ترميز UTF-8 بدون ترميز بالنسبة المئوية: تستخدم بعض الأنظمة ترميز UTF-8 مباشرة، ولكن هذا يمكن أن يؤدي إلى مشاكل إذا لم يتم التعامل معه بشكل صحيح.
اعتبر تفاصيل تطبيقك لاختيار طريقة الترميز الأكثر ملاءمة.
التاريخ
تم تقديم ترميز URL مع المواصفات المبكرة لمعايير URL وURI (محدد الموارد الموحد) في التسعينيات. نشأت الحاجة إلى طريقة متسقة لترميز الأحرف الخاصة من الأنظمة ومجموعات الأحرف المتنوعة المستخدمة في جميع أنحاء العالم.
تشمل المعالم الرئيسية:
-
RFC 1738 (1994): عرّف عناوين URL وقدم الترميز بالنسبة المئوية.
-
RFC 3986 (2005): تحديث بناء جملة URI، مما حسّن القواعد الخاصة بالترميز.
على مر الزمن، أصبح ترميز URL جزءًا لا يتجزأ من تقنيات الويب، مما يضمن التواصل الموثوق عبر أنظمة ومنصات مختلفة.
أمثلة على التعليمات البرمجية
إليك أمثلة على كيفية إجراء ترميز URL في لغات برمجة مختلفة:
' مثال Excel VBA
Function URLEncode(ByVal Text As String) As String
Dim i As Integer
Dim CharCode As Integer
Dim Char As String
Dim EncodedText As String
For i = 1 To Len(Text)
Char = Mid(Text, i, 1)
CharCode = AscW(Char)
Select Case CharCode
Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
EncodedText = EncodedText & Char
Case Else
If CharCode < 0 Then
' التعامل مع الأحرف Unicode
EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
Else
EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
End If
End Select
Next i
URLEncode = EncodedText
End Function
' الاستخدام:
' =URLEncode("https://example.com/?name=Jürgen")
ملاحظة: قد يختلف الناتج قليلاً بناءً على كيفية تعامل كل لغة مع الأحرف المحجوزة والمسافات (مثل ترميز المسافات كـ %20
أو +
).
رسم بياني SVG لعملية ترميز URL
اعتبارات الأمان
يعد الترميز وفك الترميز المناسبين لـ URL أمرًا حيويًا للأمان:
-
منع هجمات الحقن: يساعد ترميز مدخلات المستخدم في منع تنفيذ التعليمات البرمجية الضارة، مما يقلل من مخاطر البرمجة النصية عبر المواقع (XSS) وهجمات الحقن الأخرى.
-
سلامة البيانات: يضمن أن البيانات تُنقل دون تغيير أو فساد.
-
الامتثال للمعايير: يضمن الالتزام بمعايير الترميز تجنب مشاكل التوافق بين الأنظمة.
المراجع
- RFC 3986 - محدد الموارد الموحد (URI): https://tools.ietf.org/html/rfc3986
- ما هو ترميز URL وكيف يعمل؟ https://www.urlencoder.io/learn/
- الترميز بالنسبة المئوية: https://en.wikipedia.org/wiki/Percent-encoding
- معيار URL: https://url.spec.whatwg.org/
- URI.escape قديمة: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated
الخاتمة
يعد ترميز URL جانبًا أساسيًا من تطوير الويب والاتصالات عبر الإنترنت. من خلال تحويل الأحرف الخاصة إلى تنسيق آمن، يضمن أنه يمكن تفسير عناوين URL بشكل صحيح بواسطة المتصفحات والخوادم، مما يحافظ على سلامة وأمان نقل البيانات. توفر هذه الأداة وسيلة مريحة لترميز الأحرف الخاصة في عناوين URL الخاصة بك، مما يعزز التوافق ويمنع الأخطاء المحتملة أو الثغرات الأمنية.