Завжди безпечний
Вони безпечні (теоретично / спец.), В основному в будь-якому місці, крім доменного імені.
Процент-кодуйте що-небудь, що не перераховане, і вам добре піти.
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, що містить недійсні символи файлу, або компонент запиту, що містить "?", "=" Та "&", коли не використовується як роздільник. Правильне поводження з цими справами, як правило, залежить від ваших сценаріїв, і їх можна вирішити, але це потрібно пам’ятати.