代碼倉庫敏感詞檢查

1、先說下背景:平時寫代碼無意間可能就會留下敏感詞的,網上也會經常爆出某些公司代碼存在敏感詞被公衆知曉而造成公關危機,就像代碼sonar檢查一樣,RD也是有檢查代碼倉庫敏感詞的需求,但是目前公司層面還未提供這種服務。

2、一般通過關鍵字進行詞彙檢索,最方便的方式是使用shell腳本的grep命令來進行,如 grep -r 「keyWord」 projectDir;如果是多關鍵字檢索,則可以寫成grep -r -E 「keyWord1|keyWord2」 projectDir來進行;但如果進行敏感詞檢查,則關鍵字通常有幾百個,類似上面的寫法在iTerm2執行會內存溢出。

3、idea是自帶關鍵字搜索功能的,能不能借助idea來實現關鍵字的檢索呢?實踐表明,該方式是可以的。通過Cmd + Shift + F快捷鍵打開關鍵字搜索窗口,勾選正則表達式匹配,將關鍵字 「購物車|訂單」輸入,是可以實現類似grep -r -E 「keyWord1|keyWord2」 projectDir效果的。下面的任務很簡單,只需要找一個敏感詞詞庫,然後將敏感詞處理成類似」keyWord1|keyWord2」格式即可。
使用正則表達式查找關鍵詞

4、敏感詞查詢條件獲取,一般通過搜索就可以解決該問題。下載的敏感詞詞彙格式如下:

keyWord1
keyWord2
keyWord3

可以通過下述shell腳本將上述格式的文本轉換爲」keyWord1|keyWord2|keyWord3」

組裝查詢條件shell腳本

awk ‘{printf $0」|」}’ CensorWord.txt > Censor.txt

使用上述命令生成的關鍵字序列格式如下

keyWord1|keyWord2|keyWord3|

爲實現查詢還是需要將最後一個分隔符給去掉,得到結果爲:keyWord1|keyWord2|keyWord3

5、從上述Censor.txt複製查詢條件然後在idea搜索就可以了,速度還算可以。

敏感詞查詢下載地址:http://blog.csdn.net/shuyou612/article/details/74931955