0

我计划使用下面的代码以安全的方式将记录添加到 MySql 中。我的问题:

  1. 我总是使用管理页面的表格输入我自己的文章。由于我的mysql数据库和表是用UTF-8编码的,整理:utf8_unicode_ci; 并且我所有的网页都是 charset=utf-8 那么我还需要函数中的第一句话吗(句子以 mb_convert_encoding ... 开头)
  2. 2 - ) 网页查看器是否有可能,尽管我的所有编码(web&mysql)aer 设置为 utf-8,但他/她在我的 textarea 中输入的评论没有以 utf-8 编码
  3. 下面的代码需要改进吗?

    function safe_input_into_mysql($safe_str)
    {
    $safe_str = mb_convert_encoding($safe_str, 'UTF-8', mb_detect_encoding($safe_str));
    $safe_str = mysqli_real_escape_string($dbc, $safe_str);
    return $safe_str;
    }

4

1 回答 1

0

您希望数据库记录以何种方式“安全”?防范什么?

对于与数据库的通信,您应该使用参数化查询。这意味着在数据库级别不会存在安全风险。这并不意味着如果在其他地方以不受保护的方式使用存储的数据(例如,作为 HTML 文档的一部分输出),存储的数据可能不会有危险。

您提到表字符集是 UTF-8,但您没有提到连接字符集。您还应该确保正确设置了连接字符集。

于 2013-02-01T13:42:41.537 回答