فك تشفير URL

فك تشفير سلاسل URL المشفرة إلى نص قابل للقراءة.

0 حرف

ما هو فك تشفير URL؟

فك تشفير URL هو عملية تحويل الأحرف المشفرة بالنسبة المئوية مرة أخرى إلى شكلها الأصلي. عندما يتم ترميز البيانات بـ URL، يتم استبدال الأحرف الخاصة بـ % متبوعًا بقيم سداسية عشرية. يعكس فك التشفير هذا العملية لاستعادة النص الأصلي.

الاستخدامات الشائعة لفك تشفير URL

  • قراءة معاملات سلسلة الاستعلام: عند تحليل عناوين URL من أشرطة عناوين المتصفح أو التحليلات أو السجلات، غالبًا ما تكون معاملات الاستعلام مشفرة بـ URL. لفهم القيم التي بحث عنها المستخدمون أو الفلاتر التي طبقوها، فك تشفير المعاملات. على سبيل المثال، ?q=coffee+%26+tea يفك تشفيره إلى "coffee & tea". تفك أطر عمل الويب المعاملات تلقائيًا، ولكن عند العمل مع عناوين URL الخام أو بناء محللات مخصصة، يجب عليك فك التشفير يدويًا.
  • تحليل سجلات الخادم: تسجل سجلات خادم الويب (Apache، Nginx) عناوين URL مع ترميز النسبة المئوية سليمًا. عند تحليل سجلات الوصول للعثور على مصطلحات البحث الشائعة، أو اكتشاف أنماط الهجوم، أو تصحيح أخطاء 404، فك تشفير عناوين URL لرؤية ما طلبه المستخدمون فعليًا. على سبيل المثال، /search?q=%22hello+world%22 يفك تشفيره إلى /search?q="hello world".
  • تصحيح أخطاء تطبيقات الويب: أثناء التطوير، افحص عناوين URL في علامة تبويب شبكة أدوات مطور المتصفح. يمكن أن تكون المعاملات المشفرة صعبة القراءة. فك تشفيرها يساعدك على التحقق من أن تطبيقك يرسل البيانات الصحيحة. هذا مفيد بشكل خاص لعناوين URL المعقدة مع معاملات متعددة مشفرة، أو كائنات متداخلة، أو سلاسل JSON ممررة كمعاملات URL.
  • تطوير واختبار API: عند بناء أو اختبار واجهات برمجة التطبيقات التي تقبل معاملات URL، فك تشفير المعاملات الواردة للتحقق من أن العملاء يرسلون بيانات صحيحة. هذا يساعد في تشخيص المشكلات حيث تكون قيم المعاملات مشفرة مضاعفًا، أو مشفرة بشكل غير صحيح، أو تحتوي على أحرف غير متوقعة. تظهر أدوات اختبار API مثل Postman عناوين URL مشفرة. فك التشفير يساعد على التحقق من القيم الفعلية المرسلة.
seo.url_decode.heading_how

seo.url_decode.how_desc

  • seo.url_decode.how_step1
  • seo.url_decode.how_step2
  • seo.url_decode.how_step3
  • seo.url_decode.how_step4

seo.url_decode.how_example

فهم فك تشفير URL

فك تشفير URL هو عكس ترميز URL (RFC 3986). يعالج فك التشفير السلسلة حرفًا بحرف: عندما يواجه حرف % متبوعًا برقمين سداسي عشري، يحول تلك الأرقام السداسية عشرية إلى قيمة بايت ويخرج الحرف المقابل. بالنسبة للأحرف المشفرة بـ UTF-8 (التي تستخدم بايتات متعددة)، يعالج فك التشفير تسلسلات %XX المتتالية لإعادة بناء الحرف الكامل. على سبيل المثال، %C3%A9 يفك تشفيره إلى é (بايتات UTF-8 C3 A9). يتعامل فك التشفير أيضًا مع الحالة الخاصة حيث يمثل + مسافة في البيانات المشفرة بالنموذج (application/x-www-form-urlencoded).

اعتبارات الأمان عند فك تشفير عناوين URL

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

فك تشفير URL في لغات البرمجة

فك تشفير URL مدمج في معظم لغات البرمجة. إليك أمثلة شاملة:

// urldecode() - يفك تشفير ترميز النموذج (+ تصبح مسافة)
$decoded = urldecode($encoded);

// rawurldecode() - متوافق مع RFC 3986 (+ تبقى كـ +)
$decoded = rawurldecode($encoded);

// تحليل سلاسل الاستعلام (فك تشفير تلقائي)
$url = 'https://example.com/search?q=coffee+%26+tea';
$parts = parse_url($url);
parse_str($parts['query'], $params);
// $params['q'] مفك تشفيره تلقائيًا: "coffee & tea"
// decodeURIComponent() - فك التشفير القياسي (موصى به)
const decoded = decodeURIComponent('hello%20world%20%26%20stuff');
// النتيجة: "hello world & stuff"

// معالجة علامات الجمع يدويًا إذا لزم الأمر
function decodeFormData(str) {
    return decodeURIComponent(str.replace(/\+/g, ' '));
}

// تحليل معاملات URL
const url = new URL('https://example.com/search?q=coffee+%26+tea');
const query = url.searchParams.get('q');
// مفك تشفيره تلقائيًا: "coffee & tea"
from urllib.parse import unquote, unquote_plus, parse_qs

# unquote() - فك التشفير القياسي (+ تبقى كـ +)
decoded = unquote('hello%20world%20%26%20stuff')
# النتيجة: "hello world & stuff"

# unquote_plus() - فك تشفير النموذج (+ تصبح مسافة)
decoded = unquote_plus('hello+world+%26+stuff')
# النتيجة: "hello world & stuff"

# تحليل سلاسل الاستعلام (فك تشفير تلقائي)
params = parse_qs('q=coffee+%26+tea&page=1')
# params['q'] = ['coffee & tea']
import (
    "net/url"
    "fmt"
)

// QueryUnescape() - يفك تشفير سلاسل الاستعلام (+ تصبح مسافة)
decoded, err := url.QueryUnescape("hello+world+%26+stuff")
if err != nil {
    fmt.Println("Decoding error:", err)
}
// النتيجة: "hello world & stuff"

// PathUnescape() - يفك تشفير المسارات (+ تبقى كـ +)
decoded, err := url.PathUnescape("hello%2Fworld")
// النتيجة: "hello/world"

// تحليل معاملات URL (تلقائي)
u, _ := url.Parse("https://example.com/search?q=coffee+%26+tea")
query := u.Query().Get("q")
// مفك تشفيره تلقائيًا: "coffee & tea"
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// فك تشفير URL (حدد دائمًا UTF-8)
try {
    String decoded = URLDecoder.decode("hello+world+%26+stuff",
                                      StandardCharsets.UTF_8);
    // النتيجة: "hello world & stuff"
} catch (Exception e) {
    System.err.println("Decoding error: " + e.getMessage());
}
require 'uri'
require 'cgi'

# URI.decode_www_form_component() - فك تشفير النموذج
decoded = URI.decode_www_form_component('hello+world+%26+stuff')
# النتيجة: "hello world & stuff"

# CGI.unescape() - بديل
decoded = CGI.unescape('hello+world')
# النتيجة: "hello world"

# تحليل سلاسل الاستعلام (تلقائي)
params = URI.decode_www_form('q=coffee+%26+tea&page=1')
# params = [['q', 'coffee & tea'], ['page', '1']]
using System;
using System.Web;
using System.Net;

// HttpUtility.UrlDecode() - فك تشفير النموذج (+ تصبح مسافة)
string decoded = HttpUtility.UrlDecode("hello+world+%26+stuff");
// النتيجة: "hello world & stuff"

// Uri.UnescapeDataString() - فك التشفير القياسي (بدون System.Web)
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20stuff");
// النتيجة: "hello world & stuff"

الأدوات ذات الصلة

هل تحتاج إلى ترميز نص لعناوين URL؟ استخدم مشفر URL لتحويل الأحرف الخاصة إلى تنسيق مشفر بالنسبة المئوية.

فك تشفير سلاسل Base64؟ جرب فك تشفير Base64 للبيانات المشفرة بـ Base64.

فك تشفير كيانات HTML؟ استخدم فك تشفير كيانات HTML لتحويل < > & مرة أخرى إلى أحرف.