如何保护Class.forName(" com.mysql.jdbc.Driver)?

时间:2016-09-21 16:42:42

标签: java mysql security jdbc

我在我们的应用程序上运行了安全扫描,其中一个安全问题是"下载没有完整性检查的代码"。该行的风险点为Class.forName("com.mysql.jdbc.Driver");

我无法找到

  1. 如何保护上述代码?
  2. 如何确保forName("")的参数不是我要加载的恶意类。
  3. 注意:我在我们的实时环境中使用Java 1.7。我们没有安全策略/ SecurityManager。

    编辑:使用的安全扫描是Checkmarx。

1 个答案:

答案 0 :(得分:3)

使用recent JDBC drivers,无需再进行Class.forName()注册。更新你的驱动程序(如果它不是JDBC4或更新版本),你将能够完全删除该行。

安全问题似乎是指this,这意味着攻击者已经访问了类路径,因此也会以其他方式造成大量破坏。在那时检查校验和的建议解决方案可能没什么帮助。