การใช้@
สัญลักษณ์เป็นส่วนหนึ่งของผู้ใช้ปลอดภัยหรือไม่? ตัวอย่างเช่น URL ที่เป็นไปได้http://example.com/@dave
คือ
แนวคิดก็คือปัจจุบันผู้ใช้มักเรียกว่า "@user" แล้วทำไมไม่สร้างหน้าผู้ใช้ "@username" ขึ้นมาล่ะ?
การใช้@
สัญลักษณ์เป็นส่วนหนึ่งของผู้ใช้ปลอดภัยหรือไม่? ตัวอย่างเช่น URL ที่เป็นไปได้http://example.com/@dave
คือ
แนวคิดก็คือปัจจุบันผู้ใช้มักเรียกว่า "@user" แล้วทำไมไม่สร้างหน้าผู้ใช้ "@username" ขึ้นมาล่ะ?
คำตอบ:
คุณสามารถใช้@
ตัวละครในเส้นทาง HTTP URI ถ้าคุณร้อยละเข้ารหัส%40
เป็น
เบราว์เซอร์หลายคนจะแสดงก็ยังคงเป็น@
แต่เช่นเมื่อคุณคัดลอกและวาง URI %40
ลงในเอกสารข้อความที่มันจะเป็น
แทนที่จะเข้ารหัสเปอร์เซ็นต์คุณสามารถใช้@
โดยตรงในเส้นทาง HTTP URI
ดูไวยากรณ์สำหรับเส้นทางของ URI คำสั่งที่ไม่เกี่ยวข้องต่างๆกันเส้นทางที่อาจประกอบด้วยตัวละครในsegment
, segment-nz
หรือsegment-nz-nc
ชุด segment
และsegment-nz
ประกอบด้วยอักขระจากpchar
ชุดซึ่งกำหนดเป็น:
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
อย่างที่คุณเห็น@
มีการระบุไว้อย่างชัดเจน
segment-nz-nc
ชุดยังแสดง@
ตัวอักษรอย่างชัดเจน:
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
ดังนั้น HTTP URI เช่นนี้จึงใช้ได้ทั้งหมด:
http://example.com/@dave
นี่คือตัวอย่างหน้า Wikipedia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
ในขณะที่คุณสามารถดู"
, (
และ)
ตัวอักษรเป็นร้อยละเข้ารหัส แต่@
และ_
ถูกนำมาใช้โดยตรง
@
ใน URL อีกต่อไป แต่ URL ของโปรไฟล์ (?) เก่ายังใช้งานได้: ตัวอย่างที่เข้ารหัสเปอร์เซ็นต์@
(ใช้งานไม่ได้ !)เทียบกับตัวอย่างที่ใช้@
โดยตรง (does ทำงาน!) .
@
ในกรณีของ Twitter ลิงก์ภายในของพวกเขาอ้างถึง url โดยไม่@
ว่า: twitter.com/@stackexchange
@
จะไม่ถูกสงวนไว้ ดังนั้นผู้บริโภคจะต้องไม่ถือว่า%40
และ@
เทียบเท่า
Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
นั่นไม่เป็นความจริงสำหรับ Chrome
คุณใช้สัญลักษณ์ @ ใน URL ได้หรือไม่? - ใช่คุณทำได้!
โปรดสังเกตว่า @ -character ค่าฐานสิบหก 40 ค่าทศนิยม 64 เป็นอักขระที่สงวนไว้สำหรับ URI การใช้งานมีไว้สำหรับสิ่งต่างๆเช่นที่อยู่อีเมลในmailto:
URI เป็นต้นmailto:username@somewhere.foo
และสำหรับการส่งข้อมูลชื่อผู้ใช้และรหัสผ่านใน URI (ซึ่งเป็นความคิดที่ไม่ดี แต่เป็นไปได้):http://username:password@somewhere.foo
หากคุณต้องการ URL ที่มีสัญลักษณ์ @ ในเส้นทางคุณต้องเข้ารหัสโดยเรียกว่า " การเข้ารหัส URL " ตัวอย่างเช่นนี้:http://somewhere.foo/profile/username%40somewhere.foo
เบราว์เซอร์ที่ทันสมัยทั้งหมดจะแสดงสิ่งนี้เป็นhttp://somewhere.foo/profile/username@somewhere.fooและจะแปลงไฟล์ที่พิมพ์เป็น @ -sign เป็น%40
ดังนั้นจึงใช้งานง่าย
เว็บเฟรมเวิร์กจำนวนมากจะช่วยคุณโดยอัตโนมัติหรือด้วยฟังก์ชันตัวช่วยในการแปลงเป็นและจาก URL ที่เข้ารหัส URL
โดยสรุป: ได้คุณสามารถใช้@ -symbolใน URL ได้ แต่คุณต้องตรวจสอบให้แน่ใจว่ามีการเข้ารหัสเนื่องจากคุณไม่สามารถใช้@ -characterได้
@
อักขระก็ไม่ "จำเป็น" ที่จะเข้ารหัสในส่วนพา ธ ของ url ( greenbytes.de/tech/webdav/rfc3986.html#path )
ในRFCอักขระต่อไปนี้:
! * '(); : @ & = + $, /? % # []
สงวนไว้และ:
วัตถุประสงค์ของอักขระที่สงวนไว้คือการจัดเตรียมชุดอักขระการคั่นที่แตกต่างจากข้อมูลอื่นภายใน URI
ดังนั้นจึงไม่แนะนำให้ใช้อักขระเหล่านี้โดยไม่เข้ารหัส
หมายเลข Basicaly
@
เป็นอักขระที่สงวนไว้และควรใช้ตามวัตถุประสงค์ที่ตั้งไว้เท่านั้น
ดู: http://perishablepress.com/stop-using-unsafe-characters-in-urls/และhttp://www.ietf.org/rfc/rfc3986.txt
สามารถใช้การเข้ารหัสได้ แต่ฉันไม่คิดว่านั่นคือสิ่งที่คุณถาม
เห็นได้ชัดว่าเบราว์เซอร์สมัยใหม่สามารถจัดการสิ่งนี้ได้ อย่างไรก็ตามคุณถามว่าสิ่งนี้ปลอดภัยหรือไม่และตามข้อกำหนดของRFCคุณไม่ควรใช้ (ไม่เข้ารหัส) เว้นแต่จะเป็นไปตามวัตถุประสงค์ที่ตั้งใจไว้