【问题标题】:Form POST issue表单 POST 问题
【发布时间】:2012-05-03 21:15:12
【问题描述】:

我在将表单提交到另一个 .PHP 文件时遇到问题。

当我尝试发布到我的数据库时,我收到了一个禁止错误。它在大多数情况下都可以工作,但是当我尝试像这样发布“http://”链接时出现此错误:

This is a test.<div><br></div><div>I wonder if it will work.&nbsp;</div>

如果没有 br 就可以工作 对于上面的代码,我使用的是 WYSIWYG 编辑器。但是这种用法在 WYSIWYG 之前使用某些单词发生。

不确定它的文件权限是“0644”还是服务器本身。但我想解决这个问题。 谢谢,

我发现我不能使用两个标签。如&lt;div&gt;Test&lt;/div&gt;&lt;b&gt;Test&lt;/b&gt;但可以使用&lt;div&gt;test&lt;/div&gt;

【问题讨论】:

  • 链接的源代码中包含引号。难道你不以任何方式逃避你的sql吗?请看xkcd.com/327

标签: php forms post


【解决方案1】:

尝试过滤帖子字符串:

htmlspecialchars(mysql_real_escape_string($_POST['data']));

在尝试将其插入数据库之前。

【讨论】:

  • 执行 HTML 转义的正确位置是在使用数据时,而不是在存储数据时。
  • 我仍然遇到同样的问题。
  • @ThiefMaster ,不正确:在保存到数据库之前执行 HTML 转义可以避免许多 sql 注入攻击。
  • HTML 转义和 SQL 注入完全不相关。为避免 SQL 注入,通常必须将单引号替换为双单引号或以反斜杠作为前缀,具体取决于系统。 html-escaping 时,这两件事都不会发生。
  • 你在哪里看到htmlspecialchars?我不。万一你混淆了什么:我只是在谈论那个功能。 mysql_real_escape_string 显然是必需的,除非你使用准备好的语句/PDO(你应该这样做)
猜你喜欢
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 2014-05-10
  • 1970-01-01
相关资源
最近更新 更多