【问题标题】:How does wordpress allow posting of code via textareawordpress 如何允许通过 textarea 发布代码
【发布时间】:2011-11-01 16:05:27
【问题描述】:

我最近问了一个关于 LAMP 堆栈不允许通过 textarea 发布

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

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

更新

我已将用于测试的代码移至此处的服务器:http://www.007softwares.com/testing.php

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

【问题讨论】:

  • 您是否 100% 确定脚本标签真的被删除了?您如何以及在哪里看到它?您是在浏览器中查看输出却没有看到吗?
  • 处理表单的脚本在 $_POST、$_GET 和 $_REQUEST 数组中找不到任何内容,当脚本标签放置在文本区域内的任何位置时,它们完全是空白的。当脚本标签不存在时一切正常
  • 这确实很奇怪。你 10000% 确定没有安装 mod_security 吗? PHP 的 Suhosin 补丁怎么样? (您可以使用phpinfo()查找)
  • 是的 mod_security 没有安装,我用 页面添加了代码,它引发了错误。不确定 Suhosin 补丁。

标签: wordpress post textarea lamp


【解决方案1】:

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

【讨论】:

  • 感谢您的回答,代码在 WAMP 服务器上运行良好,问题仅发生在 LAMP 上。应用是我写的,没有你说的逻辑,其实var数组在应用入口处都是空白的?
  • @Waqar 基本上你上面所说的关于数组是空白的,我现在明白了
  • 如果没有更多信息,几乎不可能调试它。你能把你的代码放在pastebin.com这样的地方吗?
  • 您的服务器上肯定运行了一些安全模块,当输入脚本标签时返回 403 Forbidden 错误。如果您输入 SQL 语句,您会得到同样的错误。我会花更多精力检查 mod_security 和 Suhosin。
  • 我已向托管服务提供商发送了一封电子邮件,希望尽快收到他们的回复
【解决方案2】:

这肯定是在您的浏览器中或(更有可能)在服务器上的一些被误导的安全机制。

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

<?php phpinfo(); ?>

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

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

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

【讨论】:

  • @Waqar 确实如此。你能问供应商他们是否有任何东西在运行吗?
  • 我已经给他们发了一封电子邮件
【解决方案3】:

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

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

【讨论】:

  • string.strip_tags 也在我的 Windows 机器(WAMP 服务器)上注册,我没有收到错误!我不使用 php 过滤扩展,它仍然会导致问题吗?
  • 你的 WAMP 服务器有过滤扩展吗?
  • 是的,LAMP 和 WAMP 中的过滤器是相同的
  • 嗯...也许这与您在表单声明中的 enctype="multipart/form-data" 参数有关...由于不同的 mime 类型处理程序,处理程序的行为可能不同...然后我不明白为什么它会与

    标签一起使用并返回带有

  • 后者是有道理的。可能他们正在使用不允许通过 .htaccess 文件覆盖的 mod_security v2:/
【解决方案4】:

当用户提交

标签时,它会按预期工作。当用户提交

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

【讨论】:

  • 同意,我向托管服务提供商发送了一封电子邮件,他们说他们正在使用不支持通过 .htaccess 文件覆盖的 mod_security v2。他们说他们会要求管理员将我的网站排除在规则之外。感谢您的回答。
猜你喜欢
  • 2016-11-26
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
相关资源
最近更新 更多