MySQL SQL注入能够成功的原因主要有以下几点:
没有进行输入验证和过滤:在开发过程中,如果没有对用户输入的数据进行验证和过滤,那么恶意用户就可以利用这一点来注入恶意代码,从而实现SQL注入攻击。
使用动态拼接SQL语句:如果在开发过程中使用了动态拼接SQL语句的方式来构造SQL查询语句,而没有使用参数化查询方式,那么就容易受到SQL注入攻击。
没有进行足够的权限控制:如果数据库用户的权限设置不当,恶意用户可以利用SQL注入来绕过权限验证,获取到数据库中的敏感信息。
没有及时更新和修补漏洞:如果数据库系统没有及时更新补丁或修复漏洞,那么就容易受到已知漏洞的攻击,包括SQL注入攻击。
总的来说,要防止SQL注入攻击,开发人员需要注意对用户输入进行验证和过滤,使用参数化查询方式来构造SQL语句,以及做好权限控制和漏洞修复等工作。