在這里,我想和大家分享一下我對服務(wù)器安全的認(rèn)識。雖然很早以前就想過黑客,因為各種原因沒有做黑客,但是一直關(guān)注服務(wù)器安全領(lǐng)域。
很久以前,我設(shè)置服務(wù)器只是為了測試我學(xué)到的知識點,但我并沒有太注意安全性。服務(wù)器總是受到各種各樣的攻擊,我當(dāng)時也沒怎么注意。之后,我真的用服務(wù)器搭建了一個正式的網(wǎng)站,才感受到安全問題的緊迫性。當(dāng)時服務(wù)器買的比較早,用在web環(huán)境的書房相信大家對這個環(huán)境都很熟悉,一鍵相對方便智能。開始時,會有一個默認(rèn)設(shè)置界面,提示您配置成功。其實這只是一個測試界面,有很多敏感的數(shù)據(jù)信息,也有很多漏洞可以注入。無論是iis還是tomcat,默認(rèn)設(shè)置界面都必須在短時間內(nèi)刪除。
配置mysql數(shù)據(jù)庫查詢時,切記不要將端口設(shè)置為3306,因為默認(rèn)端口號會導(dǎo)致入侵。我必須寫一個不可預(yù)測的端口號。登錄密碼不能是默認(rèn)登錄密碼,如123456。應(yīng)該是盡可能的復(fù)雜和多樣化(我有一個朋友在數(shù)據(jù)庫查詢的時候沒有登錄密碼,然后就被當(dāng)成肉雞處理了一次,一個月的服務(wù)器數(shù)據(jù)流就消失了……)。還需要關(guān)閉數(shù)據(jù)庫查詢的遠(yuǎn)程登錄功能。時刻關(guān)注管理員賬戶,立即清理多余賬戶。有時攻擊者可能會留下一個隱藏的帳戶。正常開發(fā)維護(hù)盡量不要使用超級管理員賬號。登錄密碼應(yīng)該盡可能復(fù)雜,并經(jīng)常更改。
如果你剛學(xué)會使用網(wǎng)站服務(wù)器,或者建議安裝一個防護(hù)軟件,很多注冊表規(guī)則和系統(tǒng)權(quán)限都不需要自己配置。防護(hù)軟件很多,最好手動部署和加固。如果不明白這一點,可以向?qū)I(yè)的網(wǎng)站安全公司求助,比如SINE安全、鷹盾安全、啟明星辰, 綠盟等。我沒有立即配置服務(wù)器的環(huán)境?,F(xiàn)在,把它寫下來。以下是對用戶訪問權(quán)限的控制。在編寫apache部署時也討論了具體的訪問控制??傊?,盡量寫下嚴(yán)格的準(zhǔn)入規(guī)則。事實上,有些配置,比如防止暴力破解和DDOS,最好由機房的硬防御來處理。數(shù)據(jù)庫查詢的登錄用戶不應(yīng)該使用超級管理員權(quán)限,web服務(wù)應(yīng)該分配任何必要的權(quán)限,以便在管理后臺隱藏錯誤信息。
僅僅知道服務(wù)器的運維是不夠的,還需要研發(fā)(發(fā)現(xiàn)常見的安全問題,首先要罵服務(wù)器運維人員…其實研發(fā)上有疏忽,但一定要看是什么樣的安全問題)。
用戶的get提交的參數(shù)限制不應(yīng)該只在web的前端。那些真正想攻擊網(wǎng)站的人無疑不會在網(wǎng)頁上填寫一些代碼。后臺管理要有嚴(yán)格的限制,文件上傳可以設(shè)置文件夾目錄的執(zhí)行權(quán)限。我通常會對前端用戶傳遞的參數(shù)進(jìn)行嚴(yán)格的限制。例如,在后臺管理界面中使用的參數(shù)都是英文字母或數(shù)字,因此我只能通過常規(guī)匹配來匹配我需要的英文字母或數(shù)字。這里我們還需要了解一些常見的黑客方法,比如XSS、CSRF、sql注入等。一般來說,數(shù)據(jù)庫的查詢注入通常是有害的,可以利用pDO的關(guān)聯(lián)查詢來處理注入問題。當(dāng)然,它也可以對數(shù)據(jù)信息進(jìn)行去正則化和限制,對其進(jìn)行轉(zhuǎn)義或編碼存儲。對于用戶的登錄密碼,采用md5加密和變多模式的加密算法。
記住,不要相信用戶輸入的數(shù)據(jù)信息。
其實我說的只是一小部分安全常識,也是最基本的。這也是我在開發(fā)運維的時候總結(jié)的一些知識點。都是些零碎的東西。我記得它不是很完整。想到就加~