发布以 http:// 开头的表单元素值


Posting Form Elements Values Starting with http://

我创建了一个PHP脚本,并使用vertrigo在本地主机上对其进行了测试。它工作正常。我将其上传到我的网络托管服务器上,它在那里不起作用。它有一个使用PHP处理的HTML表单。当我提交表单时,浏览器显示以下错误消息:

禁止

您无权访问此服务器上的/jobs2/abc.php。

此外,在尝试 使用错误文档来处理请求。

这是 HTML 表单代码,它不起作用:

<form name="jobslist" method="POST" action="abc.php">
   <input type="text" name="job[0]" value="http://example.com/1.html" />
   <input type="text" name="job[1]" value="http://example.com/2.html" />
   <input type="submit" value="Submit"  />
</form>

我已经通过删除表单元素值之前的 http:// 来更正它,并且它工作正常。

<form name="jobslist" method="POST" action="abc.php">
   <input type="text" name="job[0]" value="example.com/1.html" />
   <input type="text" name="job[1]" value="example.com/2.html" />
   <input type="submit" value="Submit"  />
</form>
  • 我想知道,如何在没有的情况下使第一个代码正常工作删除表单元素值中的 http://
  • 其次,我还想知道,为什么服务器不接受以 http:// 开头的值?

此类错误可能是由服务器端模块引起的,例如mod_securitymod_rpaf或任何其他 WAF(Web 应用程序防火墙,例如在反向代理中)。您可以使用 apache2ctl -M 列出已启用的模块。

如果您没有看到任何可疑模块,您可以尝试php -m并在那里检查......

如果mod_security有罪,您应该在文件中看到信息/var/log/apache2/modsec_audit.log