mySQL注入攻击:更深入的潜水
[)对SQL注射没有完整的保护。这是因为它仅是为了逃避查询中的PHP变量。它无法处理逃逸的表或列名称或限制字段。
的漏洞考虑以下示例:如果$ field或$ value包含恶意输入,则此查询很容易受到SQL注入的影响。黑客可以制作一个恶意查询,该查询绕过逃脱并执行未经授权的命令。
特定的攻击矢量
这些利用利用Internet Explorer和PHP的Charset处理中的漏洞。他们可以允许黑客执行任意SQL查询。示例如何利用这些攻击:), mysql_real_escape_string($ argv [2]), mysql_real_escape_string($ argv [3]));
input 1:返回urls以“ http:///www.reddit.com”开头返回URLS exploit)
Input 3: Executes unexpected SQL queries
The Solution: Prepared Statements
Experts recommend using prepared statements instead of escaping functions.准备好的语句是服务器端技术,仅执行仅执行有效的SQL。这种方法提供了针对已知和未知的SQL注入的全面保护。使用pdo
$sql = "SELECT number FROM PhoneNumbers " . "WHERE " . mysql_real_escape_string($field) . " = " . mysql_real_escape_string($value);Conclusion
While mysql_real_escape_string() and mysql_escape_string() offer some protection against SQL注射,它们不足以实现完整的安全性。准备的语句是鲁棒数据库安全性的推荐方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3