-1

Meekrodb是一个简单的 php-->mysql 库。如何测试/验证它是否安全,例如针对 sql 注入攻击?

4

1 回答 1

3

一个选项是阅读常见问题解答:

我应该采取任何额外的预防措施来防止 SQL 注入吗?

如果您遵循 2 条简单规则,MeekroDB 将使 SQL 注入 100% 成为不可能。首先,切勿将 %l(文字)占位符用于用户提供的数据。这个占位符不会像所有其他人那样转义您的数据。其次,永远不要在运行时使用 MySQL 命令 SET NAMES 或 SET CHARACTER SET 更改字符集。如果您需要更改字符集,请仅在设置 MySQL 用户名/密码的同一位置使用 DB::$encoding。

第二个选项,假设您有许可证:

通过填写以下内容使用查询/输入字段:

'\"

这可能会导致你见过的最奇怪的错误。它可能只是被转换,在这种情况下你证明它是安全的。

更新

例如,从那里开始第一个声明(结合安全性):

“MeekroDB 为您处理引号和转义。”

现在为了测试这个特定的声明,他们提供了处理这种情况的方法:

DB::query("SELECT * FROM login WHERE username=%s AND password=%s", 
                                                        $username, 
                                                        $password);

为了证明这个说法是真的,你可以写一个小的应用程序,它会(例如)输入:

$username = "''""\";
于 2013-05-02T22:43:05.590 回答