Php 403发布HTML标记时禁止

Php 403发布HTML标记时禁止,php,forms,wysiwyg,Php,Forms,Wysiwyg,我有一个表单,我正在使用nicEdit WYSIWYG并启用以下按钮: 大胆的 斜体 下划线 无序列表 当使用除无序列表之外的任何一个SQL数据库时,我可以提交表单并处理对SQL数据库的更新。当文本字段使用UL时,我从服务器收到403禁止的错误 表单代码如下所示: <form action="actions.php?action=2" method="POST"> <p>How We Met Story</p> <textarea name="are

我有一个表单,我正在使用nicEdit WYSIWYG并启用以下按钮:

  • 大胆的
  • 斜体
  • 下划线
  • 无序列表
当使用除无序列表之外的任何一个SQL数据库时,我可以提交表单并处理对SQL数据库的更新。当文本字段使用UL时,我从服务器收到403禁止的错误

表单代码如下所示:

<form action="actions.php?action=2" method="POST">
<p>How We Met Story</p>
<textarea name="area1" cols="50" id="area1"><?php echo html_entity_decode($row_rsHowWeMet['howWeMet']); ?></textarea>
<input name="websiteID" type="hidden" value="<?php echo $_GET['websiteID'] ?>" />
<p><input id="partyEntry" type="submit" name="Submit" value="Save Changes" /></p>
</form>
$myMessage = htmlentities($_POST['area1']);

$sql2 = "UPDATE `tools_wedWebHowWeMet` SET `howWeMet` = '" . $myMessage . "' WHERE websiteID = '" . $_POST['websiteID'] . "'";

if (!mysql_query($sql2,$con))
{
echo "failed";
die('Error: ' . mysql_error());
}

知道为什么会这样吗?我四处搜索了一下,没有找到确切的答案。StackOverflow上有另一个线程,有一个非常类似的问题,但没有答案。非常感谢。

假设POST数组中的差异实际上只是它是否有标签(您应该通过实际检查POST并确保它在其他方面确实相同来验证这一点),我猜这与软件防火墙有关(403错误提示问题可能在服务器级别而不是PHP级别-尽管您可能有一个PHP文件故意发送403头)。检查您是否打开了或类似的功能。我怀疑您可能需要重新配置服务器的防火墙,因为它们可以配置为拒绝特定标记等(具体来说,请查看
SecFilter
settings)

*
查看错误日志文件
,403不是源于php文件的错误,至少不是源于您的示例,因为您不使用任何头来强制执行403响应,请检查您的文件组和权限。您的http服务器很可能正在使用其他用户访问该文件或文件夹,而没有权限。除此之外,您的scriPT是非常非常危险的,因为您应该考虑在插入之前阅读PDO或占位符/验证您的数据。出于安全原因,我将跳过内置的<代码> UL> 和 > LI> < /代码>标签。相反,我将使用自定义标记重新格式化它,然后当数据读回时将其转换回来。标记,因为“处理”页面在给出403错误之前甚至无法加载。如果是插入SQL DB的问题,我很可能会这样做。@明明认为该注释应该是对inhan上述注释的响应。修改防火墙设置将允许您在不转换数据的情况下使用标记(假设我是对的)你是对的,评论应该在上面!Ben,你可能是对的。我已经阅读了更多关于这个问题的内容,每个遇到这个问题的人似乎都指向了mod_安全方向。假设你说“防火墙”你是说软件防火墙,又称mod_安全,那么你是对的。现在我只需要修改一下……这可能意味着向托管公司开罚单。