歡迎光臨
每天分享高質量文章

Java Web技術經驗總結(十七)

  1. 使用httpOnly標識避免XSS攻擊,參見:說說HttpOnly Cookie的作用。解決XSS攻擊,有兩種解決方法:1)服務端對提交上來的留言內容做過濾,把惡意代碼過濾掉;2)讓惡意javascript代碼讀取不到我們種的cookie。httpOnly的角色是第二種。

  2. lombok使用,參考:Lombok:讓Java代碼更優雅//下麵是類級別註解 @NoArgsConstructor //相當於定義1個無參建構式 @Data //相當於定義了類里所有屬性的get set eqauls hashCode toString @RequiredArgsConstructor //一般和@NonNull註解配合使用,表示定義1個包含類里所有宣告@NonNull註解的建構式 @Accessors(fluent = true) //表示物體類可以用fluent風格去呼叫,例如:new Result().success(true).data(123); 這句話里success函式data 函式都是宣告註解以後自動生成的,並且都傳回當前類自身。 @FieldDefaults(level = AccessLevel.PRIVATE) //所有屬性預設訪問級別都是private ,省的挨個屬性去寫了,如果有10個屬性,9個都是private ,1個是public ,可以單獨改寫.如果單獨那個是包級別訪問權限的,可以通過加上@PackagePrivate註解去改寫 @UtilityClass //宣告這個註解,會自動為該類生成1個私有無參建構式,建構式內部會直接拋異常,表示這個類是1個工具類,無法實體化 @Log4j2 //宣告log4j2註解,會自動為該類創建1個 log屬性,避免手動創建,lombok還支持slf4j,log4j1.x commons log ,jdk原生的log,都會有相應的註解支持 .

  3. Java Web安全編碼,參見:Web 安全問題總結

  • 安全引數:HttpOnly、Secure Cookie

  • 防止頁面被嵌入iframe放到其他頁面,在Header中添加如下代碼/* X-Frame-Options: DENY prevent any site from framing the page. SAMEORIGIN allows only sites from the same domain to frame the page. */ response.setHeader("X-Frame-Options","SAMEORIGIN");

  • CSRF:跨站請求偽造,利用一次請求令牌,在服務端進行驗證

  • 會話迷戀:在登錄成功後一定要重新生成新的Session Id

  • 使用awk調換檔案中某兩列的位置awk -F ',' '{print $3"," $2"," $1}' source_file.txt > source_file_revert.txt

  • 如何控制一個外部呼叫的運行時間,自己做超時重試?

    • 通過Future.get(delay, unit)方法;

    • 通過Guava-retrying組件,參見:guava-retrying

    • 分享一篇好文章:業務代碼中的重試

  • fastjson中提供了一個TypeReference類,用於處理反序列化時候的泛型定義。參考資料:TypeReference;例子代碼見:TypeReferenceExample 7.使用Java8的並行流,需要註意執行緒安全問題,參考:https://my.oschina.net/7001/blog/1475500

  • 赞(0)

    分享創造快樂