提交给 codeigniter 控制器的 url 解码错误

发布于 2024-12-09 21:26:30 字数 818 浏览 1 评论 0原文

我有一个想要保存的 url,所以我将 jquery ajax 发布到控制器,我可以看到该帖子是 http://www.nailsupplies.us/products/ ESSIE%252dMatte-About-You-0.5oz..html 但当简单返回时$this->input->post('link'); 我明白了 http://www.nailsupplies.us/products/ ESSIE%2dMatte-About-You-0.5oz..html

起初我以为这可能是一些疯狂的 XSS 过滤器,但即使将第二个参数设置为 false 也不影响这,并且执行 $_POST 也不会,那么这个问题到底是怎么回事呢?

重现 您可以通过访问 http://e-ønsker.dk 自行测试,然后单击“ Tilføj ønske” - 如果您单击左侧的链接链图标,插入 URL 并单击“GEM”(保存)按钮,您将看到 ajax 发布和响应,并且响应只是以下的输出$this->input->post()

如果有人想知道语言是丹麦语

I have a url that I want to save, so I have my jquery ajax post to a controller, and I can see that the post is
http://www.nailsupplies.us/products/ESSIE%252dMatte-About-You-0.5oz..html but when simply return $this->input->post('link');
I get
http://www.nailsupplies.us/products/ESSIE%2dMatte-About-You-0.5oz..html

at first I thought it might be some crazy XSS filter, but even setting the second parameter false doesn't affect this, and doing a $_POST doesn't either so what the heck is up with this issue?

To reproduce
You can test it yourself by going to http://e-ønsker.dk and then click "Tilføj ønske" - if you then click the link-chain icon to the left, insert a URL and hit the "GEM" (save) button you will see both the ajax post and response, and the response is simply an output of $this->input->post()

And in case anynoe's wondering the language is danish

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↙厌世 2024-12-16 21:26:30

您似乎遇到了双重编码。 %25 被解码为“%”,这是正确的。尝试避免在帖子之前对 URL 进行编码。

您应该得到 http://www.nailsupplies.us/ products/ESSIE%2dMatte-About-You-0.5oz..html 它将正确解码为 http://www.nailsupplies.us/products/ESSIE-Matte -About-You-0.5oz..html (%2d=-)。

如果没有看到您的客户端脚本,我无法提供更多帮助。奇怪的是它只编码了第一个连字符而不是后面的连字符。

You seem to be experiencing double encoding. %25 is being decoded as '%' which is correct. Try avoiding encoding the URL before the post.

You should get http://www.nailsupplies.us/products/ESSIE%2dMatte-About-You-0.5oz..html which will decode correctly to http://www.nailsupplies.us/products/ESSIE-Matte-About-You-0.5oz..html (%2d=-).

I can't help more without seeing your client side script. It's weird that it just encoded the first hyphen and not the following ones.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文