403发布HTML标签时禁止使用

时间:2012-05-30 01:49:03

标签: php forms wysiwyg

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

  • 粗体
  • 斜体
  • 下划线
  • 无序列表

我可以提交表单并处理对我的SQL数据库的更新,当其中任何一个使用时,除了无序列表之外。当文本字段使用UL时,我从服务器收到403 Forbidden错误。

表单代码如下:

<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上有另一个线程有一个非常相似的问题,但没有答案。非常感谢。

1 个答案:

答案 0 :(得分:6)

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