我正在使用mysqli准备的语句和绑定变量。
那么,为了防止sql注入,我是否需要对用户输入执行其他操作(例如:数据类型验证、筛选、清理、字符串转义等)?
除了sql注入之外,还有其他攻击mysql数据库的方法吗?
最佳答案
要防止sql注入,必须正确格式化查询。
必须动态添加到查询中的每个文本都必须正确格式化。
不仅是字符串和数字之类的数据文本,而且包括运算符和标识符在内的所有文本。
使值格式化的唯一正确方法是prepared语句。
对于标识符和运算符,您还需要进行筛选,以便只让允许的标识符和运算符进入查询。
任何用户输入都不应该涉及。重要的是目的地,而不是来源。
除了sql注入之外,还有其他攻击mysql数据库的方法吗?
当然。但是这个话题太宽泛了,不可能通过论坛帖子来保证你的安全。最好雇个DBA。