php - 允许网站 URL 中的所有字符有哪些安全风险?

标签 php security codeigniter url

我正在使用 Codeigniter PHP框架。在其中一个配置文件中,您可以设置允许的 URL 字符:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 

因此,如果我尝试转到此 url:website.com/controller/%22quotedString%22,我将收到错误消息,除非我将引号附加到允许的字符:

$config['permitted_uri_chars'] .= '"'; 

我的应用程序实际上需要在 URL 中允许 所有 奇怪的字符,但我不希望有一个巨大的硬编码字符列表。 Codeigniter 警告不要允许所有字符:

/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| 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!!
|
*/

他们没有确切说明允许所有字符的安全问题。那么问题是什么?

最佳答案

在您的 URL 中允许所有可能的字符并没有固有的安全风险。安全问题取决于您的应用程序如何处理它们。

关于php - 允许网站 URL 中的所有字符有哪些安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013732/

相关文章:

c++ - 使用 pkcs#11 从智能卡读取文本文件

iphone - ASP 页面和 Cocoa/ObjC 之间的安全通信

mysql - Codeigniter:生成字母数字 ID

php - 如何启动 TDD/BDD PHP CodeIgniter

php - 使用 php 和 mysqli 创建表

php - ip2long转换后的IP应该如何存储在MySQL中?

c# - 如何在我的 Linux Web 服务器上运行 .dll 文件

php - 将日期字符串和时间字符串转换为时间

c# - 使用 XMS .NET API 对抗具有安全导出的安全通道

php - 如何自定义在 CodeIgniter 4 中找不到的 404 页面