相关疑难解决方法(0)

发现MySql的弱转义函数,如何利用?

在我正在研究的应用程序中,我发现了一个弱逃逸函数来防止注入.我试图证明这一点,但我在提出一个简单的例子时遇到了麻烦.

escape函数的工作原理如下(PHP示例).

function escape($value) {

  $value = str_replace("'","''",$value);
  $value = str_replace("\\","\\\\",$value);
  return $value;

}
Run Code Online (Sandbox Code Playgroud)

我意识到这不涉及使用双引号(")编码的值,但所有查询都是使用单引号(')构造的.

谁可以打败这个逃脱功能?

要求:

  • 查询中的字符串始终用引号括起来.
  • 从不使用双引号.
  • MySQL连接设置为UTF8.

简单的例子:

$sql = "SELECT id FROM users WHERE username = '" . escape($username) . "' AND password = '" . escape($password) . "'";
$sql = "UPDATE users SET email = '" . escape($email) . "' WHERE id = '" . escape($id) . "'";
Run Code Online (Sandbox Code Playgroud)

mysql sql security sql-injection

21
推荐指数
1
解决办法
6591
查看次数

mysql_real_escape_string()和mysql_escape_string()是否足以满足应用安全性?

mysql_real_rescape_string()是否足以保护我免受黑客和SQL攻击?问,因为我听说这些对所有攻击媒介没有帮助?寻找专家的意见.

编辑:另外,LIKE SQL攻击怎么样?

php mysql security

21
推荐指数
3
解决办法
6218
查看次数

mysql_real_escape_string()坏了吗?

有些人认为mysql_real_escape_string()有一些缺陷,即使正确使用也无法保护您的查询.
将一些化石制品作为证据.

所以,问题是:mysql [i] _real escape_string()是完全不可接受的吗?
或者是否仍然可以使用此函数来创建自己的预备语句?

请提供验证码.

php mysql sql-injection escaping prepared-statement

13
推荐指数
2
解决办法
7456
查看次数