我有一个使用codeigniter框架用php编写的简单表单。表单提交的其中一个字段在表单的http://somedomain.com/web/api/v2.3/offers.json 然后将此字段和表单组中的其他字段插入到mysql数据库表中。
问题是,一旦插入到列字段中,它将丢失所有格式,因此表中的结果如下所示:
httpsomedomaincomwebapiv23提供json
这行代码来自views模块中字段的form类:
这是来自控制器模块的一行代码,该模块将表单数据和包打包到一个数组中,以便模型模块将其转换为sql字符串:
'api\u url'=>$this->cleaninput($this->input->post('api\u uri')),
通过运行一个名为burpsuite的应用程序,它基本上是一个在本地计算机上运行的代理应用程序,我在提交表单之后截获了字符串,据我所见,url的格式/编码如下所示:
api\u uri=http%3a%2f%2fsomedomain.com%2fweb%2fapi%2f2.3%2fjson&submit=
但是,在mysql数据库中检查字段时,条目如下所示:
httpsomedomaincomwebapi23son
因此,在表单提交和插入数据库之间的某个时间,字符串会丢失其url编码。
就像检查一样,我使用mysql comnandline cli在数据库字段中插入了一个url格式的字符串,并且插入的字符串完美地保留了url格式。
任何想法/帮助都将不胜感激
2条答案
按热度按时间bcs8qyzn1#
我想你已经启用了
global_xss_filtering
在配置中为true,请尝试以下操作它将自动清除输入
cwxwcias2#
检查此方法。。。
$data = file_get_contents('php://input'); print_r($data);