我计划使用以下代码以安全的方式将记录添加到MySql中。我的问题:
- 我总是使用管理页面的表单输入自己的文章。由于我的 mysql 数据库和表是用 UTF-8 编码的,因此排序规则:utf8_unicode_ci;我所有的网页都是 charset=utf-8,然后我这样做功能上仍然需要第一句(句子以mb_convert_encoding...
- 2 - )网页浏览者是否可以输入他/她的评论进入我的文本区域没有用 UTF-8 编码,尽管我的所有编码(web&mysql) aer set to utf-8
-
下面的代码需要改进吗?
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;
}
您希望数据库记录以何种方式"安全"?防止什么?
为了与数据库通信,应使用参数化查询。这意味着在数据库级别不会存在安全风险。这并不意味着如果以不受保护的方式在其他地方使用存储的数据(例如,作为 HTML 文档的一部分输出),则可能没有危险。
您提到表字符集是 UTF-8,但没有提到连接字符集。还应确保正确设置连接字符集。