3

我正在使用 mysqli 准备好的语句和绑定变量。

  1. 然后为了防止 sql 注入,我是否需要使用用户输入做任何其他事情(例如:数据类型验证、过滤、清理、字符串转义等)?

  2. 除了 Sql Injection 之外,还有其他攻击 MySql 数据库的方法吗?

4

1 回答 1

2

为防止 SQL 注入,您必须正确格式化查询必须动态
添加到查询中的每个文字都必须正确格式化。 不仅是字符串和数字之类的数据字面量,还包括所有这些字面量,包括运算符和标识符。使值格式化的唯一正确方法是准备好的语句。

对于标识符和运算符,您还需要过滤,以便仅允许查询。

根本不应该涉及任何用户输入。重要的是目的地,而不是来源。

除了 Sql Injection 之外,还有其他攻击 MySql 数据库的方法吗?

确定的事情。但是这个话题太宽泛了,无法通过论坛帖子来确保您的安全。最好聘请 DBA。

于 2013-09-28T13:39:30.997 回答