我阅读了很多关于常见 sql 注入的内容,因此对如何修复它们很感兴趣。在我只是习惯于
addslashes()
(糟糕地)认为它会适合之前。然后我发现它mysql(i)_real_escape_string()
比addslashes()
. 从那时起我就开始使用mysqli_real_escape_string()
,但最近我遇到了一些我还没有真正理解的东西。我在将数据发送到 mysql 和字符集时遇到了一些问题。所以,我再一次搜索,许多用户说SET NAMES UTF8
这是让一切顺利的方法。但是后来我读到使用该查询mysqli_real_escape_string()
无法正常工作。
所以毕竟我有点困惑。
转义sql语句的正确方法是什么?
有哪些可能的漏洞利用SET NAMES UTF8
?
mysqli_set_charset()
使连接以指定字符集进行通信的正确方法是什么?
使用mysqli_sey_charset()
过程中mysql的内部变量是否发生了变化?
谢谢