【问题标题】:Error in updating mysql database更新mysql数据库时出错
【发布时间】:2012-10-04 02:42:34
【问题描述】:
UPDATE 
  `code_library_questions` 
SET 
  `answer` = 'value' 
WHERE 
  `sn` = 2;

当值是一些文本时它工作正常。但是每当值包含一些 C 或 C++ 代码时,它就会给出以下错误消息

您无权访问此服务器上的 /phpmyadmin/tbl_replace.php。

为什么会这样???

【问题讨论】:

  • 请举例说明您在value 中传递了哪些类型的值,以及如何 传递它们。您很可能需要正确转义引号。
  • 并且错误消息暗示phpmyadmin的安装损坏,而不是MySQL错误。此外,很可能该值没有被转义,这会生成无效代码。
  • 我需要在我的数据库中保存 C 和 C++ 代码。
  • 这里的值是 C 或 C++ 代码,例如 int main() { for (int i=0;i

标签: mysql sql security phpmyadmin


【解决方案1】:

ModSecurity 规则很可能将插入的代码检测为可能的 SQL 注入。检查 /var/log/httpd/modsec_debug.log 文件,看看它到底在抱怨什么。您可能必须更改规则,但如果您这样做,请确保您的 MySQLAdmin 以其他方式保护访问。

【讨论】:

  • 非常感谢 Turnkey..在我的项目中,我需要将 C 和 C++ 代码保存在我的数据库中,以便在 PHP 页面中显示它。在不影响数据库安全性的情况下,最好的方法是什么?
  • 我建议查看日志以确切了解被拒绝的内容。您也许可以对一些输入进行 htmlencode(如果它抱怨 > 或
猜你喜欢
  • 2020-09-22
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多