springboot項目配置加密,項目安全

出於安全起見,我們會對項目中application.preperties文件配置的內容加密。並且儘量將springboot框架升級到高版本(穩定版本)

將springboot框架從1.4.5升級到2.2.4以後。起初使用的jasypt3.0.1的工具給項目內容加密。

順便在這裏給大家介紹一個js代碼加密的網站:http://tool.chinaz.com/js.aspx。使用加密壓縮以後的代碼替換原來js文件裏面的js腳本代碼即可。本人測試可行。

jasypt3.0.1加密方法:

1. 將jasypt工具包導入,並且增加maven自動加密工具。

<dependency>
        <groupId>com.github.ulisesbocchio</groupId>
        <artifactId>jasypt-spring-boot-starter</artifactId>
        <version>3.0.1</version>
</dependency>

<build>
  <plugins>
    <plugin>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-maven-plugin</artifactId>
      <version>3.0.0</version>
    </plugin>
  </plugins>
</build>

2. 將application.preperties中需要加密的內容用DEC(加密內容)包裹。

     如:spring.thymeleaf.prefix=DEC(classpath:/templates/)

3. 然後使用idea打開項目目錄下的命令行,執行命令,其中password對應的字符串jiami就是我們的鑰匙:

mvn jasypt:encrypt -Djasypt.encryptor.password="jiami"

 如果出現一些jar包報錯的話,就到pom.xml文件中,將所有報錯的jar包全部註釋起來!阿里的jar包幾乎都會報錯!

4. 成功執行上面命令以後,將pom.xml中註釋掉的阿里的jar包全部放開註釋。這時候你會發現application.preperties文件中的DEC(classpath:/templates)已經變成ENC(*******密文***)

5.上面說明我們加密成功了,但是還無法啓動,所以我們要將鑰匙放到項目啓動文件:

在啓動文件main方法內增加鑰匙:

System.setProperty("jasypt.encryptor.password", "jiami");

或者在配置文件application.perperties文件中增加鑰匙配置:

jasypt.encryptor.password=jiami

6.啓動項目,爲了安全,我們再啓動項目以後進入配置鑰匙的類或文件中,將我們增加的鑰匙內容刪除掉,不會影響項目正常運行。

注意:本人實戰發現jasypt3.0.0工具不是太穩定。有時候項目運行運行的會出現無法解密啓動項目的問題。就需要重新加密。

使用:jasypt2.0.0版本的工具加密。

直接在啓動類增加代碼:

        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(鹽)
        textEncryptor.setPassword("jiami");
        //要加密的數據(數據庫的用戶名或密碼)
        String url = textEncryptor.encrypt("數據庫鏈接");
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("123123");
        System.out.println("url:"+url);
        System.out.println("username:"+username);
        System.out.println("password:"+password);

將打印出來的加密內容加上ENC如:ENC(加密後的內容),替換掉application.preperties的內容,並且在其中增加jasypt.encryptor.password=jiami。就可以了。

記得啓動以後刪除jasypt.encryptor.password=jiami這段內容哦!

通過加密後,我們可以防止數據庫連接、數據庫密碼等外泄。同時再在阿里雲安全組中配置指定IP方可連接數據庫端口。讓數據庫安全得到保障。

雲端服務器其實很難防住黑客進入我們的服務器,我們能做到的就是讓他白跑一趟。像關於支付的祕鑰、證書路徑之內的機密內容,建議放到數據庫,用的時候從數據庫拿就行。放在項目代碼中是很不安全的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章