搜尋此網誌

2024年2月6日 星期二

修補Fortify原始碼檢測漏洞

與Header有關的漏洞
Content-Security-Policy
Permissions-Policy
Referrer-Policy
Strict-Transport-Security
X-Content-Type-Options
X-Frame-Options
X-XSS-Protection


與js有關的漏洞
解法:
包成webjars再引入


Server-Side Request Forgery
Open Redirect
解法:
呼叫第三方API過濾字串。
StringUtils.replace(source, "", "");


2023年10月9日 星期一

Windows工具軟體

名稱

說明

Bandizip

壓縮軟體

hjsplit

切割程式無法讀取的過大檔案

ClipX

複製貼上進階版

WinMerge

比對檔案內容

picpick

小畫家進階版

VirtualBox

虛擬主機

XAMPP

開發環境整合

Bitvise SSH Server

SSH Server

PuTTY

SSH連線

Xshell

SSH連線

WinSCP

圖形化介面檔案傳輸

FileZilla

FTP軟體

XMind

畫心智圖

Software Ideas Modeler

畫UML

Postman

測試Web API工具

Advanced REST client

測試Web API工具(Chrome Plugin)

AdBlock

最佳廣告攔截程式(Chrome Plugin)

CCleaner

垃圾清除軟體

VisiPics

找出重複圖片的比對工具

Avast

防毒軟體

foobar2000

音樂播放軟體

Google Desktop

桌面搜尋軟體

2023年6月28日 星期三

Intellij個人化設定

快捷鍵
Reformat Code Alt + F
Comment with Line Comment Ctrl + /
Comment with Block Comment Ctrl + /
Code→Completion→Basic Alt + /
Column Selection Mode Alt + Shift + Insert
Generate... Alt + Insert
Expand Recursively Ctrl + +
Collapse Recursively Ctrl + -
Expand All Ctrl + Alt + +
Collapse All Ctrl + Alt + -
Move Caret to Code Block Start Ctrl + [
Move Caret to Code Block End Ctrl + ]
Go to next highlighted element usage Alt + Page Down
Go to previous highlighted element usage Alt + Page Up
Back Alt + Left
Forward Alt + Right
Optimize Imports Ctrl + Alt + O
Rename... Shift + F6
Find in Path... Ctrl + Shift + F
Search Everywhere Double Shift
Find Usages Alt + F7
Toggle Case Ctrl + Shift + U

2021年1月17日 星期日

2021年1月5日 星期二

MySQL指令

匯出database
mysqldump -u帳號 -p密碼 資料庫 > script.sql


匯入database
mysql -u帳號 -p密碼 資料庫 < script.sql

Windows常用網路管理指令

清除DNS解析快取
ipconfig /flushdns

2020年9月22日 星期二

重置IntelliJ IDEA試用期限

C:
cd "C:%HOMEPATH%\.IntelliJIdea*\config"
rmdir "eval" /s /q
del "options\other.xml"
reg delete "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\jetbrains\idea" /f


2020.1後的版本
C:
cd "C:%HOMEPATH%\AppData\Roaming\JetBrains\IntelliJIdea*"
rmdir "eval" /s /q
del "options\other.xml"
reg delete "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\jetbrains\idea" /f


強烈建議購買正版授權,此方法只適用延長試用期限

2020年8月27日 星期四

常用Git指令

強制push
git push -f


移除已被Git追蹤的檔案
1.專案目錄下git rm -r --cached .
2.修改.gitignore
3.執行git add .

2020年8月24日 星期一

Oracle指令

複製schema和data
create table new_table as select * from old_table;


複製指定欄位data
insert into new_table(column1, column2) select (column1, column2) from old_table;


跨database複製table
copy from username/password@ip:port/service to username/password@ip:port/service create table using select * from table;


*注意Table Engine和Character Set

2020年5月27日 星期三

MySQL快速複製Table

複製schema
create table new_table like old_table;


複製data

insert into new_table select * from old_table;


複製schema和data
select * into new_table  from old_table;


複製指定欄位data
insert into new_table(column1, column2) select (column1, column2) from old_table;


*注意Table Engine和Character Set

2020年5月24日 星期日

Linux常用指令

查詢Linux發行版與版本
ll /etc/*-release


查詢 Linux 核心版本
uname -a
cat /proc/version


2020年5月18日 星期一

CentOS 7安裝MariaDB

安裝
yum install mariadb-server


設定開機自動啟動
systemctl enable mariadb


啟動
systemctl start mariadb


檢查狀態
systemctl status mariadb


安全性設定工具
mysql_secure_installation


登入
mysql -u root -p

Linux目錄配置(FHS)

/ (root, 根目錄):與開機系統有關
/etc (設定檔)
/boot (開機與核心檔)
/usr (unix software resource):與軟體安裝/執行有關
/opt (第三方協力軟體)
/var (variable):與系統運作過程有關
/var/run (程序相關)
/var/lock (程序相關)
/var/mail (使用者郵件信箱)
/var/spool/news (新聞群組)

2020年2月2日 星期日

Java常用API(Apache)

字串相關
StringUtils.isBlank //是否為空字串
StringUtils.leftPad/rightPad/center //左/右/中補字
StringUtils.substring //擷取字串
StringUtils.left/right/mid //從左/右/中擷取字串
StringUtils.equals //比較兩字串
StringUtils.join //串接List元素


隨機字串相關
RandomStringUtils.randomNumeric //產生隨機數(指定位數)


File相關
FileUtils.openInputStream //讀inputStream
FileUtils.readFileToString //讀檔至String
FileUtils.readFileToByteArray //讀檔至byte
FileUtils.openOutputStream //寫outputStream
FileUtils.writeStringToFile //將String寫檔
FileUtils.writeByteArrayToFile//將byte寫檔
FileUtils.copyInputStreamToFile //將inputStream寫檔
FileUtils.copyFile //複製檔案至目的
FileUtils.copyURLToFile //複製url至目的

Java常用API(Native)

取得所有可用的編碼
Charset.availableCharsets();


整數左補0
String.format("%05d", 123); //00123


印出Array所有元素
Arrays.toString();


Array轉換為List
Arrays.asList();


Array排序
Arrays.sort();


List轉為Array
new ArrayList().toArray();


List排序
Collections.sort();


List反轉
Collections.reverse();


List元素串接為字串
String.join();

2019年11月6日 星期三

SQL效能優化


  • join多個table時會從右邊開始處理,所以資料量越大應擺在越左邊,資料量多→少
  • 條件處理是從下往上,所以越能減少資料量的條件越往下
  • join多個table時在column前加上table alias
  • 使用not exist取代not in
  • between效能等同>= and <=
  • 使用index提升效能
  • 有index的column避免數學運算及使用not,會導致full scan
  • 刪除整張table使用truncate代替delete(truncate會重置auto increment, delete不會)
  • oracle分頁查詢:
select a.*
from (select ROWNUM rn, b.*
      from (select * from table s order by coulmn asc ) b
      where ROWNUM <= page*size) a
where a.rn >= (page-1)*size;

2019年10月5日 星期六

本機架設Git伺服器

1.建立空的專案目錄

2.專案目錄下執行git --bare init

3.產生金鑰ssh-keygen -t rsa -C "git username" -f "檔案名稱"

4.金鑰預設位置:user目錄/.ssh

5.啟動ssh伺服器(bitvise)

6.拉下專案:git checkout:username@url:/專案名稱

7.複製專案:git clone username@url:/專案名稱 本地專案名稱(自訂,不輸入則預設為專案名稱)

2019年8月7日 星期三

Java與Oracle的日期時間轉換

Java的日期時間格式
java.util.Date


Oracle的日期時間格式(皆繼承自java.util.Date)
java.sql.Date:年月日
java.sql.Time:時分秒
java.sql.Timestamp:以上兩者合併(精確至微秒)


Oracle轉換Date函數
TO_CHAR():日期格式轉字串
ex:TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')

TO_DATE():字串轉日期格式
ex:TO_DATE('2000-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

TO_TIMESTAMP():字串轉日期格式
ex:TO_TIMESTAMP('2000-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')


系統時間
SYSDATE:返回Date
SYSTIMESTAMP:返回Timestamp

Array與Collection的轉換方法

印出Array所有元素
Arrays.toString()


Array轉換為List
Arrays.asList()


Arrays排序
Arrays.sort()


List轉為Array
new ArrayList().toArray()


List排序
Collections.sort()


List反轉
Collections.reverse()