我是否需要转义每个字符串以及转义字符串的最大长度是多少?

时间:2015-05-29 21:50:32

标签: php string salt mysql-real-escape-string

我正在尝试使用SQL在我的数据库中存储随机生成的salt。我使用这行代码在php中生成了这个盐:

$salt = mysqli_real_escape_string($this->connection, mcrypt_create_iv(256, MCRYPT_DEV_URANDOM));

据我了解,所有字符串都必须转义,无论它们是否来自用户输入,因为我的随机salt也可能有特殊字符干扰SQL而不管它们是否故意恶意?我也理解为逃避字符串PHP需要添加额外的字符,从而增加字符串的长度。我想知道字符串的最大长度是什么后溢出的?是否只为字符串中的每个侵权字符添加了一个字符,因此对于我的256个字符串,字符串的最大长度为512?

由于

1 个答案:

答案 0 :(得分:4)

不要逃避。请改用bind parameters

除此之外,重要的是未转义的价值。转义只是为了让解析器读取字符串安全。实际的字符串值仍然是相同的大小(并且将由MySQL引擎以未转义的形式处理)。转义只是一种在查询中安全嵌入值的方法。