อักขระพิเศษใดที่ปลอดภัยที่จะใช้ใน URL


14

อักขระพิเศษใดที่ปลอดภัยที่จะใช้ใน URL


3
มันจะเร็วและง่ายกว่าที่จะถามว่าอักขระพิเศษใดที่ไม่ปลอดภัยในการใช้ URL (ตามคำตอบของ Andreas Bonini ด้านล่าง)
Mark Hatton

2
การถามสิ่งที่ไม่ปลอดภัยนั้นยากที่จะตอบ: ตัวละครที่ไม่ใช่ ASCII จะต้องเข้ารหัสเป็นเปอร์เซ็นต์
neo

2
@neo: ไม่ไม่: O
Thomas Bonini

คำตอบ:


10

อักขระที่ปลอดภัยคือ az, AZ, 0-9 และ _ - (ขีดล่างและเครื่องหมายลบ) ซึ่งนอกเหนือจากอักขระที่สงวนไว้ซึ่งใช้สำหรับพารามิเตอร์

ตัวละครอื่น ๆ จะให้ปัญหาในระดับหนึ่ง ตัวอย่าง: หากหนึ่งพารามิเตอร์คืออาร์เรย์?param=array[content]เช่นจะแสดง URL เล็กน้อยวงเล็บเหลี่ยมที่เข้ารหัส URL ซึ่งดูน่าเกลียดและเป็นไปไม่ได้ที่จะกำหนด

แต่ปัญหาไม่เพียง แต่น่าเกลียดเท่านั้นสมมติว่าคุณมี jpg ที่มีตัวละครอยู่ข้างๆตัวที่ปลอดภัยกว่าหลายครั้งที่เบราว์เซอร์จะไม่สามารถดาวน์โหลดได้ที่ 404 นี่เป็นปัญหาของเบราว์เซอร์รุ่นเก่าและเบราว์เซอร์มือถือ

วิธีทดสอบสิ่งนี้?

  • ใส่รูปภาพจำนวนมาก / js / css ด้วยอักขระที่คุณต้องการทดสอบในชื่อในหน้าสาธารณะที่มีผู้เข้าชมจำนวนมาก
  • ทำให้หน้า 404 ส่งอีเมลถึงคุณทุกครั้งที่ได้รับความนิยม

ฉันมีกล่องจดหมายพร้อมอีเมล 14,000 ฉบับที่พิสูจน์จุดของฉัน


5
ดีแทนที่จะเป็น "ตัวละครที่ปลอดภัย" ฉันจะพูดว่า "ตัวละครที่ปลอดภัยอย่างยิ่ง" - สเป็คอนุญาตให้มากกว่า แต่ฉันเห็นด้วยกับคุณว่ามันจะดีกว่าที่จะอนุรักษ์ที่นี่
Jeff Atwood

2
เกิดอะไรขึ้นกับช่วงเวลา
BlueWhale

12

อักขระต่อไปนี้มีความหมายพิเศษในส่วนประกอบเส้นทางของ URL ของคุณ (ส่วนประกอบเส้นทางคือทุกอย่างก่อนหน้า '?'):

  ";" | "/" | "?"

นอกจากนั้นอักขระต่อไปนี้มีความหมายพิเศษในส่วนแบบสอบถามของ URL ของคุณ (ทุกอย่างหลังจาก '?') ดังนั้นหากพวกเขาอยู่หลัง '?' คุณต้องหลบหนีพวกเขา:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

สำหรับคำอธิบายเพิ่มเติมในเชิงลึกให้ดูRFC


3
แน่นอนว่าเพื่อความชัดเจนคำตอบนี้ตรงข้ามกับคำถาม คำถามจะถามว่าตัวละครตัวไหนที่ปลอดภัยไม่ใช่ตัวที่ไม่ปลอดภัย เนื่องจากเป็นการยากที่จะตอบคำถามเดิมอย่างมีประสิทธิภาพคำถามอาจจะได้รับการแก้ไขเพื่อถามคำถามในลักษณะอื่นและจับคู่คำตอบนี้
Mark Hatton

3

คำตอบที่นี่ดี แต่มีอีกหนึ่งข้อยกเว้นที่ฉันคิดว่าน่าพูดถึง - ตัวละครที่ไม่ใช่ภาษาอังกฤษ การอ้างอิงคำถาม SF นี้ที่นี่ตัวละครเช่นñ (เหมือนในEspañol) นั้นถูกต้องตามกฎหมายอย่างสมบูรณ์หากพวกเขาเข้ารหัสใน DNS ของคุณอย่างถูกต้อง

คุณต้องใช้Punycodeใน DNS ของคุณเพื่อให้แก้ไขในเบราว์เซอร์สมัยใหม่ (รายการสำหรับespañolคือxn--espaol-zwa) แต่ตอนนี้สิ่งเหล่านี้ปลอดภัยอย่างสมบูรณ์แบบที่จะใช้ในชื่อโดเมนเนื่องจากง่ายสำหรับผู้ที่ไม่ใช้ภาษาอังกฤษในการพิมพ์ .

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.