防止命令拼接注入等問題。
本來想做黑名單校驗,比如說不能包含分號,&&,||等符號。
考慮到沒有白名單安全,故使用白名單進行檢驗。
校驗規則:
只允許使用
數字大小寫字母
點號和冒號(ipv4和ipv6)
斜桿「/」空格
指令碼:
para=$*
echo "$para" | grep -q -e '^[ 0-9a-za-z./:]*$'
result=$?
if [ "$result" -ne 0 ]
then
echo "parameter error!"
exit 1
fi
測試過程:
root@debian2:~/test# sh test.sh hahah kdsjflkd
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1
root@debian2:~/test#
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888
root@debian2:~/test#
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 ";"
parameter error!
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "/var/log/"
root@debian2:~/test#
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "#"
parameter error!
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "&&"
parameter error!
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "||"
parameter error!
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "|"
parameter error!
root@debian2:~/test# sh test.sh hahah kdsjflkd 192.168.0.103 ::1 fe80::a00:27ff:fe99:7888 "#"
parameter error!
root@debian2:~/test#
引數檢驗與非引數檢驗
引數檢驗 parameter test 全稱引數假設檢驗,是指對引數平均值 方差進行的統計檢驗。引數檢驗是推斷統計的重要組成部分。當總體分布已知 如總體為正態分佈 根據樣本資料對總體分布的統計引數進行推斷。非引數檢驗 nonparametric tests 是統計分析方法的重要組成部分,它與引數檢驗...
IPv6引數檢驗
判斷輸入字串是否為空或者全部都是空格 function isnull str 檢查ipv6位址 正規表示式 function checkipv6 str return str.match g length 7 test str da f da f i.test str da f da f i.tes...
Python KS檢驗以及其餘非引數檢驗的實現
4 其餘的非引數檢驗 5 參考 定義 檢驗乙個分布f x 與理論分布g x 比如正態分佈 是否一致,或兩個觀測值分布是否有顯著差異的檢驗方法 根據定義,ks檢驗可以分為兩大類 對應的原假設和備擇假設分別為 第一種 h0 指定數列服從特定分布 h1 指定數列不服從特定分布 第二種 h0 兩個數列分布一...