Символ @ разрешен в URL, опасно? - PullRequest
1 голос
/ 08 ноября 2010

Из файла config.php CodeIgniter:

/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify with a regular expression which characters are permitted
| within your URLs.  When someone tries to submit a URL with disallowed
| characters they will get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

Было бы безопасно для меня добавить символ @ в этот список разрешенных символов? Каковы риски?

Спасибо

Ответы [ 6 ]

3 голосов
/ 08 ноября 2010

@ используется для добавления имени пользователя и, возможно, пароля к URL-адресам, для которых требуется HTTP-аутентификация.Насколько это небезопасно, я не могу сказать из этого комментария.Теоретически, в зависимости от контекста, вы можете не захотеть, чтобы пользователи вводили такие url-ы.

Кроме этого, проверка безопасности такого рода немного .. глупая, там растет количество доменов верхнего уровнячто используют символы, отличные от ASCII, Россия была выделена .рф, материковый Китай получил. 中國, есть еще много примеров.

http://en.wikipedia.org/wiki/Internationalized_domain_name

1 голос
/ 08 ноября 2010

RFC 1738 разрешает только следующие символы в сегменте пути URI: A-Za-z0-9_\-\.!~*\'"(), (не часть запроса)

1 голос
/ 08 ноября 2010

Вы не должны, если вы не закодируете это. Не кодированный @ зарезервирован для специального значения, такого как пользователь FTP (monty@ftp.python.com) или адрес электронной почты (monty.python@camelot.com).

Так что, независимо от соблазна, не делайте этого. Зачем тебе это все равно?

1 голос
/ 08 ноября 2010

Это не указано здесь, чтобы предотвратить этот тип URL:

http://mybank.com-some-very-long-string@hacker.com/

Это будет идти к hacker.com, в то время как выглядит как mybank.com для случайных ссср.

1 голос
/ 08 ноября 2010

безопасно, см. Список небезопасных символов

http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

0 голосов
/ 04 февраля 2015

Вы можете найти более подробную информацию об этом здесь, она предлагает вам, как вы можете использовать опасные символы, также используя кодировку

http://perishablepress.com/stop-using-unsafe-characters-in-urls/ более по javascript: может быть опасность

Вы можете использовать & lt, заменяя <знаки и другие символы особой опасности соответствующими заменами. </p>

...