国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

項目適 Oracle改造及SSL安全性配置問題匯總詳解

瀏覽:88日期:2023-03-12 15:25:13
目錄
  • 背景
  • Oracle 適配點
  • 其他低級錯誤
  • 高級問題
  • 工具思維
    • 開發(fā)啟示錄

背景

項目開發(fā)初期使用 MySQL ,后期需要適配 Oracle ,總結(jié)適配過程及多數(shù)據(jù)庫支持時,從開發(fā)初期就需要考慮的幾點。

另外,總結(jié)幾點最近半年開發(fā)過程中的技術(shù)問題。坑都填了,也該是時候記錄一下填坑的經(jīng)過了,要不然下次可能還會踏入同一個坑。

Oracle 適配點

  • 表名稱長度限制,支持 Oracle 12C 以下是需要考慮 30個字符的限制。
  • Oracle 關(guān)鍵字 USER 不能亂用做別名.跟 MySQL 不一樣,Oracle 有一張?zhí)厥獾挠脩舯砻Q就是 USER
  • Oracle 沒有默認轉(zhuǎn)義符號,支持模糊查詢時,需要手動編寫查詢語句指定 ESCAPE 字符。這點 MyBatisPlus 插件的模糊查詢愛莫能助,所以還是需要自定義模糊查詢 SQL。好在 MySQL 和 Oracle 的 ESCAPE 語法是是一樣的,可以統(tǒng)一。此外字符串連接函數(shù) CONCAT 也應(yīng)該以 Oracle 為主,只能有兩個參數(shù)。
  • Oracle 的字段長度,一個中文的長度是2,這點與 MySQL 不一樣。可變長度、允許輸入中文的字段,都需要自動擴大到 MySQL 的 2 倍長。
  • Oracle 的 null 值插入或者更新時的異常問題,可以通過 MyBatisPlus 的全局配置 jdbc-type-for-null: 'null' 統(tǒng)一解決。
  • Oracle 區(qū)分大小寫的,SQL 語法中注意小寫是否真的是小寫,如果是,需要加引號轉(zhuǎn)義。
  • MySQL 的 text 或者 LongText 字段,對應(yīng) NCLOB VS VARCHAR(4000),有些特殊字段需要超長字符的,有個四千的邊界,超過就需要用 NCLOB 類型。

其他低級錯誤

有些低級錯誤,比如:

  • yml 配置冒號后面要有空格,特殊字符用單引號。
  • IDEA 將普通 Java 工程導(dǎo)出可執(zhí)行 jar 的時候,MANTIFET 清單文件生成的目錄必須放在 src 下面,否則打包生成的文件執(zhí)行時找不到主類。
  • 迭代器遍歷的正確用法是 while(it.hasNext) 而非 if ,后者只會執(zhí)行一次。再次印證了一句經(jīng)驗:不要相信拷貝來的代碼,除非經(jīng)過了你的測試。
  • 精度丟失問題,一個簡單的計算指定周期的時間戳的代碼,未考慮精度問題而溢出:
long result = 0;
switch (type){
case "year":
 result = time*365*24*60*60*1000;
  break;
case "month":
  result = time*30*24*60*60*1000;
  break;
case "day":
  result = time*24*60*60*1000;
  break;
  }

這個簡單的根據(jù)時間單位類型,計算間隔的時間戳的代碼, time 類型傳入了 int ,結(jié)果幾個純數(shù)值默認 int 相乘后,單位為 year 結(jié)果溢出為負數(shù)了。

這是一個計算密碼鎖定時間的功能,鎖定時間算出為負了,當(dāng)密碼正確時自動判斷是否繼續(xù)鎖定時,當(dāng)前時間 > (鎖定開始時間+鎖定時常)直接解鎖了。

這個錯誤雖然低級,但是卻測不出來,只有腦回路清奇的測試把密碼鎖定策略的鎖定周期設(shè)置為年時才會顯現(xiàn)。

高級問題

Web 項目安全掃描,https 支持的過程中,默認的 ssl 配置被掃到了不安全的密碼套件和密鑰長度過短的問題。Spring Boot 項目配置 SSL ,在目標(biāo)服務(wù)器配置后 ciphers 密碼套件后,訪問不成功,總結(jié)一下這個過程。

相關(guān)的 SSL 配置:

ssl:
    enabled: false
    key-store: file:xxx.jks
    key-store-type: JKS
    key-alias: xxx
    key-store-password: xxx
    # 配置證書版本,默認是 TLS1.0
    protocol: TLS
    # 設(shè)置SSL版本,默認是 TLS1.0
    enabled-protocols: TLSv1.2
    # 密鑰套件算法,剔除不安全的算法
    ciphers: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

需要注意的是,ciphers 參數(shù)中的密碼算法對 JDK 版本有要求,較低的1.8 小版本是不支持的。

工具思維

有一臺服務(wù)器的 SFTP 服務(wù)配置連接時間很短,由于網(wǎng)絡(luò)問題,F(xiàn)TP 客戶端總是沒法在30秒內(nèi)完成連接。但是碰到需要上傳文件的時候,怎么辦呢?

找別人上傳了兩次之后,總不能每次都找別人幫忙上傳吧。試了下 Java 的 FTP 上傳工具類,jsch 竟然能成功上傳。一個簡單的工具類,就成了縮減版的 FTP 工具了。

開發(fā)啟示錄

啟示一,協(xié)同開發(fā)過程中,如果你看到了確實是問題的異常,拋在開發(fā)溝通群里,不能指望真正負責(zé)這個模塊的人會主動解決這個問題。最好的方法是 @他 并明確告訴他有問題。否則,下次這個問題復(fù)現(xiàn)的時候,還是會再次面對的。

啟示二,再次反思,拷貝代碼要測試。

以上就是項目適 Oracle改造及SSL安全性配置問題匯總詳解的詳細內(nèi)容,更多關(guān)于Oracle改造SSL安全適配的資料請關(guān)注其它相關(guān)文章!

標(biāo)簽: Oracle
主站蜘蛛池模板: 久久99精品久久久久久综合 | 久久久久欧美精品 | 国产精品女上位在线观看 | 在线观看精品国产 | 114毛片免费观看网站 | 欧美另类精品一区二区三区 | 免费a级在线观看播放 | 国产成人亚洲合集青青草原精品 | 国产精品成人观看视频国产 | 国产成人免费手机在线观看视频 | 亚洲欧美在线视频免费 | 久久高清精品 | 特黄毛片 | 国产精品v免费视频 | 一级做a爰片性色毛片中国 一级做a爰性色毛片 | 中文字幕乱码中文乱码综合 | 亚洲一区二区视频 | 欧美视频区 | 午夜宅宅宅影院在线观看 | 久久99中文字幕 | 国产成人亚洲综合无 | 92精品国产自产在线 | 亚洲高清视频在线 | 99re6热视频精品免费观看 | 国产乱子伦露脸对白在线小说 | 欧美日韩一区二区三区久久 | 欧美做爰野外在线视频观看 | 精品手机在线视频 | 午夜性生活视频 | 国产中文字幕视频在线观看 | 欧美大片aaaa一级毛片 | 国产精品特黄一级国产大片 | 高清国产美女一级毛片 | 黄色a免费 | 91国在线高清视频 | 男人精品一线视频在线观看 | 欧美日韩在线第一页 | 国产亚洲精品一区二区三区 | 国产在线乱子伦一区二区 | 免费又黄又爽又猛大片午夜 | 男人女人做刺激视频免费 |