【问题标题】:Storing and displaying code using mysql_real_escape_string();使用 mysql_real_escape_string() 存储和显示代码;
【发布时间】:2012-07-24 03:45:47
【问题描述】:

我正在创建一个网页,允许用户粘贴他们的代码并获得一个唯一的 URL,以便以后访问它。问题是我正在使用

mysql_real_escape_string($_POST['code'])

为了防止 sql 注入,但同时它在代码中添加了斜杠,这意味着当代码在以后显示时,它会被破坏(到处都是斜杠。)

有没有办法在再次显示代码时“取消转义”它?

对不起,如果这看起来不清楚或显而易见,这是我第一个使用 php 的项目。

【问题讨论】:

  • 请停止使用mysql_* 函数,因为它们是now deprecated。请改用MySQLiPDO
  • 您确定斜线来自mysql_real_escape_string() 还是来自$_POST
  • stripslashes() 唯一的答案是“如何修复我的错误数据?”。 PHP 应该首先正确配置以不会导致这种情况
  • @Jason:两者都有。哇!

标签: php html sql mysql-real-escape-string


【解决方案1】:

它是回显带斜杠($code);你在找吗?我认为为了增加安全性,您还必须将特殊字符转换为 html 实体,并在必要时去除所有脚本标签以避免 xss 攻击。

见:

http://php.net/manual/en/function.htmlentities.php

XSS filtering function in PHP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 2020-11-14
    • 2019-02-22
    • 2011-04-01
    • 1970-01-01
    • 2011-08-23
    • 2013-08-21
    相关资源
    最近更新 更多