我在使用Codeigniter时遇到了一个奇怪的问题。我的网站有一个搜索功能,它会将用户的查询显示在URL中,以便他们可以保存该URL。我确保在将查询文本放入URL之前,对其进行了rawurlencode处理。然而,当查询中有一个不在我的permitted_uri_characters配置中的字符时,Codeigniter仍然会将我重定向到错误页面。
所以,即使我的浏览器显示/search-results/query/%22samplequery%22,我仍然会收到关于使用非允许字符的错误。
这是一个Bug吗?我的URL中没有非允许字符。我有一个百分号和一些数字(这些都是明确允许的)。肯定是permitted_uri_characters设置给我带来了麻烦。如果我将引号添加到其中,它就可以轻松地通过%22查询。
需要说明的是,查询来自表单作为post数据,然后在我的控制器中进行编码,然后重定向到新页面。在进行编码之前,绝不可能在permitted_uri_characters被应用。
这让我非常困扰,因为目前我的唯一解决方案是打开我的permitted_uri_charcters以接受任何东西,这并不安全!
所以,即使我的浏览器显示/search-results/query/%22samplequery%22,我仍然会收到关于使用非允许字符的错误。
这是一个Bug吗?我的URL中没有非允许字符。我有一个百分号和一些数字(这些都是明确允许的)。肯定是permitted_uri_characters设置给我带来了麻烦。如果我将引号添加到其中,它就可以轻松地通过%22查询。
需要说明的是,查询来自表单作为post数据,然后在我的控制器中进行编码,然后重定向到新页面。在进行编码之前,绝不可能在permitted_uri_characters被应用。
这让我非常困扰,因为目前我的唯一解决方案是打开我的permitted_uri_charcters以接受任何东西,这并不安全!