wordpress如何允许通过textarea发布代码

时间:2011-08-23 05:36:19

标签: wordpress post textarea lamp

我最近问了一个关于LAMP堆栈不允许发布< script>的问题。通过textarea标记,请求被apache杀死我猜是因为$ _POST,$ _GET和$ _REQUEST字段都是空的。
我只是想知道wordpress如何允许用户添加小部件,更新的模板文件以及使用textarea控件创建页面,该控件允许< script>标签

更新的 我在这里为表单创建了一个pastebin条目:http://pastebin.com/1Jaz9rRz

基本上它是一个自动生成的表单,我从源代码中复制粘贴。

更新

我已将测试代码移到服务器:http://www.007softwares.com/testing.php

表单正在发布给自己,我已回显$ _REQUEST数组以查看发布的内容。您可以看到提交表单的时间,字段是可见的,当您键入脚本标记时,将显示错误页面。希望这会有所帮助。

4 个答案:

答案 0 :(得分:1)

这当然是一种误导的安全机制,无论是在您的浏览器中,还是(更有可能)在服务器上。

如上所述,使用phpinfo()检查Suhosin:

<?php phpinfo(); ?>

您应该在结果输出中看到一些提及“Suhosin”或“Hardened PHP”的字样。

另外,我不排除mod_security - 您在.htaccess添加禁用行时所说的错误可能还有其他原因。例如,它可以配置为无法通过.htaccess关闭。

询问您的网络托管服务商是否有任何可能导致安全问题的安全措施。

答案 1 :(得分:0)

LAMP堆栈不关心通过TEXTAREA提交的文本。接收表单输入的脚本/应用程序可能有一些逻辑,如果它看到SCRIPT标记就会杀死进程,但通常你可以提交你想要的任何文本。

答案 2 :(得分:0)

你的phpinfo()表示string.strip_tags被注册为流过滤器。这可能会导致您的问题。

此外,您的过滤器扩展程序可能配置为剥离,尽管不太可能。

答案 3 :(得分:0)

当用户提交&lt; p>标记它按预期工作。当用户提交&lt;脚本&gt;标记404返回。这让我相信apache正在使用mod_security,配置类似于:

SecFilterDefaultAction "deny,log,status:404"
SecFilter "<script"