POST到服务器,其中encodeURIComponent包含><导致301重定向的字符

POST to server with encodeURIComponent containing >< characters causing a 301 redirect

本文关键字:导致 重定向 字符 lt gt 服务器 其中 encodeURIComponent POST 包含      更新时间:2023-09-26

我正在将一个HTML字符串发布到Apache服务器,接收函数只是将字符串写入数据库。它没有什么大的或聪明的地方,它适用于其他所有实现。

我在POST之前对字符串进行encodeURIComponent处理,服务器返回301重定向并转移到非www版本的域上的GET请求。除了标准的Wordpress配置之外,htaccess中没有其他功能。无论如何,这只是一个文本字符串。我还用exit()替换了服务器上的函数,将其从等式中删除。

我使用相同的机制,通过相同的目标函数将大量其他数据发布到该服务器,没有任何问题。

我发现问题是发送字符><在发送HTML时,这些情况经常发生。

所以我通过:encodeURIComponent("<span class='teststring'><span>")发送

哪个帖子。。action=updatemenu&mstring=%3Cspan%20class%3'测试字符串'%3E%3span%3E

并返回。。岗位http://www.DOMAINREMOVED.co.uk/twdc/CMS/TellMe.php301永久移动301ms然后是。。得到http://DOMAINREMOVED.co.uk/twdc/CMS/TellMe.php301永久移动108ms

如果我移除>或<从><模式它工作得很好!将上面的encodedURI字符串缩减为仅><导致相同的错误。

我完全不知所措。以前有人遇到过这个,或者有什么想法吗?我想最终我可以用安全的东西替换有问题的字符串,但这有一定的意义,因为所有用户输入都必须进行编码/解码,以防万一。这肯定没有必要吗?

我只是试着把所有的><在encodeURIComponent结果上用replace(/%3E%3C/g,"~~")替换POST字符串,并将其传递到服务器,而不会出现重定向/错误。

编辑7月19日00:00

我注意到;在POST中,这是响应标头。如果没有违规字符,x-pingback不会出现在响应标头中。

缓存控制没有缓存,必须重新验证,最长期限=0连接保持活动内容长度0内容类型text.html;charset=UTF-8日期2013年7月18日星期四22:57:07 GMT有效期至1984年1月11日星期三格林尼治标准时间05:00:00保持活动超时=5,最大值=100位置http://*domain*.co.uk/twdc/CMS/TellMe.phpPragma无缓存服务器ApacheX-Pingback http://*domain*.co.uk/xmlrpc.phpX-Powered-By-PHP/5.117

我想这与WordPress有关。有人能说明这件事吗?

需要明确的是,当前网站是基于Wordpress的;替代品不是,但在建造新的替代品的过程中,它们是共存的。

我仍然不确定Wordpress和POSTing HTML字符的问题是什么,但我发现,如果我将要发送的数据编码为JSON对象,服务器不会反对。

我认为这在某种程度上阻止了wordpress使用的任何函数解析HTML。。不过我还是想知道原因!