使用gvm管理Golang版本

gvm是Go Version Manager的縮寫

nvm(node version manager)phpbrew功能一樣

在一次升級Go版本的過程中

偶然發現這個東西

就決定使用它

其實Go目前還沒有安裝多版本的需求

不像PHP需要很多版本來測試

但已經習慣使用command line來管理套件

我的php, nodejs都是用版本管理系統來管理的

所以Go也不想例外

安裝也很簡單

只需要一行

… Read more
如何在 Golang 讀取/寫入檔案

這篇是在 stackoverflow 上看到的

覺得滿實用

在Golang要操作檔案有三種方法

第一種就是操作檔案的指標

跟php的fopen差不多

以下是第一段程式碼

… Read more
修改CentOS 7的hostname

Centos 7我發現多了很多指令

以往都要自己修改某個檔案的方式已經過去了

CentOS 7用指令取代腦袋(要記憶的路徑)

也許會說指令也需要記憶

但其實只需要記開頭就好了

… Read more
在CentOS7 上 安裝Nginx + ModSecurity建立免費WAF

WAF是Web Application Firewall的縮寫

其原理是將已知的攻擊手法,用匹配方式偵測並阻擋

所以可以預想得到

規則會列很多條

也不一定全面

只需要熟悉漏洞原理的人

照樣可以繞過

但有總比沒有好

至少可以過濾掉大部分的script kiddie

除了ModSecurity之外

還有一個專門for nginx的WAF叫做naxsi

這個有機會也可以試用看看

不過這次先用ModSecurity

要把nginx跟ModSecurity結合

必須要自己compile nginx和ModSecurity

以下用我寫的shell script一步一步做講解

Step 1. 安裝compile所需套件

… Read more
[Golang] 取得使用者的Home資料夾位置

golang 有提供 user的package

可以直接取得使用者的資訊

在文件裡面寫到

user.Current() 可以取得包含目前使用者資訊的User struct

struct結構長這樣

… Read more