【问题标题】:How to protect username password in shared enviornment如何在共享环境中保护用户名密码
【发布时间】:2010-05-01 02:38:39
【问题描述】:

如何使用spring在共享主机环境中保护数据库用户名和密码

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql:///BUSINESS</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value>password</value></property>            
    </bean>

【问题讨论】:

    标签: spring-security spring


    【解决方案1】:

    我不知道有任何 Spring 特定的解决方案。

    在共享主机环境中,应确保该文件不是公开可读的,这样其他用户就无法查看您的文件内容。在共享应用服务器的情况下,应用服务器应该在同一个组中,因此只有应用服务器可以访问您的文件。

    应用程序不应该使用 MySql root 密码。您应该创建一个对特定架构具有有限权限的 MySql 帐户(例如,一个只能执行 DML 语句而不能执行 DDL 语句的用户)。

    要将用户名/密码保留在纯文本文件之外,您可以在 Java 类中硬编码配置(这基本上是 security through obscurity)。替换配置:

    <bean id="dataSource"
        class="my.app.CustomDriverManagerDataSource" > 
      <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
      </property> 
    </bean>
    

    并将这个类添加到你的类路径

    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    
    public class CustomDriverManagerDataSource extends DriverManagerDataSource {
    
      public DriverManagerDataSource() {
        super("jdbc:mysql:///BUSINESS","root","password");
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多