从CodeIgniter config.php文件:
/*
|--------------------------------------------------------------------------
| 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~%.:_\-';
将@
字符添加到此允许字符列表中是否安全?有什么风险?
由于
答案 0 :(得分:3)
@用于将用户名和可能的密码添加到需要HTTP身份验证的URL-s。这是不安全的我从这个评论中无法分辨出来。从理论上讲,根据上下文,您可能不希望用户输入此类URL。
除此之外,这种安全检查有点愚蠢,有越来越多的顶级域名使用除ASCII以外的字符,俄罗斯被分配.рф,中国大陆得到。中国,有更多的例子。
答案 1 :(得分:1)
答案 2 :(得分:1)
此处未列出此类网址以防止此类网址:
http://mybank.com-some-very-long-string@hacker.com/
这会hacker.com
,而mybank.com
看起来像偶然的ussr。
答案 3 :(得分:1)
你不应该,除非你编码它。未编码的@
保留用于特殊含义,如FTP用户(monty@ftp.python.com)或电子邮件地址(monty.python@camelot.com)。
所以,不管诱惑如何,都不要这样做。无论如何你还想要什么?
答案 4 :(得分:1)
RFC 1738仅允许URI的路径段中包含以下字符:A-Za-z0-9_\-\.!~*\'"(),
(不是查询部分)
答案 5 :(得分:-1)
您可以在此处找到有关它的更多具体细节,它建议您如何使用编码
来使用危险字符http://perishablepress.com/stop-using-unsafe-characters-in-urls/ 更多javascript:可能是危险
您可以使用& lt replacement<标志和其他特殊危险人物以及相应的替代品。