ปลอดภัยเสมอ
สิ่งเหล่านี้ปลอดภัย (ในทางทฤษฎี / ข้อมูลจำเพาะ) โดยทั่วไปทุกที่ยกเว้นชื่อโดเมน
เปอร์เซ็นต์เข้ารหัสสิ่งที่ไม่อยู่ในรายการและคุณยินดีไป
A-Z a-z 0-9 - . _ ~ ( ) ' ! * : @ , ;
บางครั้งก็ปลอดภัย
ปลอดภัยเฉพาะเมื่อใช้ภายในส่วนประกอบ URL เฉพาะ ใช้ด้วยความระมัดระวัง
Paths: + & =
Queries: ? /
Fragments: ? / # + & =
ไม่ปลอดภัย
ตามข้อกำหนดของ URI (RFC 3986) อักขระอื่น ๆ ทั้งหมดจะต้องเข้ารหัสเป็นเปอร์เซ็นต์ รวมถึง:
<space> <control-characters> <extended-ascii> <unicode>
% < > [ ] { } | \ ^
หากข้อกังวลเกี่ยวกับความเข้ากันได้สูงสุดให้ จำกัด ชุดอักขระไว้ที่ AZ az 0-9 - _
(พร้อมจุดเฉพาะส่วนขยายชื่อไฟล์)
คำนึงถึงบริบท
แม้ว่าจะถูกต้องตามข้อกำหนด แต่ URL ก็ยังสามารถ "ไม่ปลอดภัย" ได้ทั้งนี้ขึ้นอยู่กับบริบท เช่นไฟล์: /// URL ที่มีอักขระชื่อไฟล์ไม่ถูกต้องหรือส่วนประกอบข้อความค้นหาที่มี "?", "=" และ "&" เมื่อไม่ได้ใช้เป็นตัวคั่น การจัดการกรณีเหล่านี้อย่างถูกต้องนั้นขึ้นอยู่กับสคริปต์ของคุณและสามารถแก้ไขได้ แต่ก็เป็นสิ่งที่ควรคำนึงถึง