恩,一切的前提還是你先保證網路安全和主機安全,然後再考慮web安全,不然白搭.....
1.物理網路架構方面
在不同的主機上部署web server, app server, database server。
限制外界web server的連線,比如只提供80埠。
限制web server與app server,database server之間的連線,比如使用防火牆或者作業系統或者軟體的配置。
不在web server上儲存機密的資訊,如果儲存,最好加密。比如其他server的帳號資訊。
2.認證
採用規範的認證方法,密碼,證書,活動金鑰,生物方式。如果你所在的公司有現成的認證介面或者認證產品,用這個,不要自己編。如果要求比較強烈,可以考慮多種認證方式並行。比如密碼+證書+活動金鑰
傳輸密碼時最好加密,儲存密碼時也最好加密。
設計密碼時滿足一定的強度,特別是管理員的帳號...
3.授權和訪問控制
每個使用者滿足最小許可權原則。
在邏輯層和資料層做訪問控制,在表現層(網頁,flas**件)做的訪問控制對安全沒有實際用途
4.session管理
各種中介軟體上的session管理已經很好了,不要隨便自己編。(國內的應該沒有自己編的....)
session應該設定為一定時間內過期。
不要輕易設定為讓瀏覽器固態儲存cookie
乙個帳號最好只允許乙個使用者登入
不要在客戶端放置任何標識使用者身份的資訊,只信賴session id
5.連線資料庫
連線資料時應該使用最小許可權的帳號(一上來就用sa的人最後因為sql注入死翹翹)
6.關鍵資料保護
對待關鍵資料要加倍小心,可以使用加密,區別對待的方法
7.日誌
記錄日誌吧,有條件的話,記得詳細點,特別是關鍵操作,再有條件的,對日誌做個備份或者記在其他server上。
8.**編寫
使用的模板,框架,技術本身有問題嗎?
在伺服器端做輸入過濾,客戶端的輸入過濾是無效的。過濾特殊字元,資料型別,資料長度。最好是只接受合法輸入,而不是拒絕特殊情況。
乙個不錯的資源來自微軟:
不光對於.net架構的,對於其他web應用程式也有一定參考價值。
保障Web安全的一些最佳實踐
恩,一切的前提還是你先保證網路安全和主機安全,然後再考慮web安全,不然白搭.1.物理網路架構方面 限制外界web server的連線,比如只提供80埠。不在web server上儲存機密的資訊,如果儲存,最好加密。比如其他server的帳號資訊。2.認證 採用規範的認證方法,密碼,證書,活動金鑰,...
CSS Sprite的一些最佳實踐方法
下面是一張樣圖 1 本文的目的並不是講css sprite如何讓乙個 更快,而是說一些使用css sprite的時候的一些最佳實踐。如果你邊切圖邊寫css,然後等你完成了整個 之後再來拼接這些到乙個sprite中,你就不得不完全重寫你的css,你也必須要花費很多的時間來用ps拼接大量的 這是件令人倍...
保障MySQL資料安全的一些建議
資料是企業核心資產,資料對企業而言是最重要的工作之一。稍有不慎,極有可能發生資料無意洩露,甚至被黑客惡意竊取的風險。每年業界都會傳出幾起大事件,某知名或不知名的公司被脫褲 拖庫的諧音,意思是整個資料庫被黑客盜取 之類的。從資料安全上也可以分為外網安全及內部操作安全,下面分別討論一下。內部操作安全策略...