<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    如何建立安全的 Web 網站


    發現錯別字 2年前 提問
    回答
    1
    瀏覽
    316
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    房樂
    CISAW CISP-PTE
    最佳答案

    主機操作系統是Web的直接支撐者,合理配置主機系統,能為Web服務器提供強健的安全支持。

    1.配置主機操作系統

    (1)僅僅提供必要的服務

    已經安裝完畢的操作系統都有一系列常用的服務,UNIX系統將提供Finger、Rwho、RPC、LPD、Sendmail、FTP、NFS、IP轉發等服務。Windows 2003 Server系統將提供RPC(遠程過程調用)IP轉發、FTP、SMTP等。而且,系統在默認的情況下自動啟用這些服務,或提供簡單易用的配置向導。這些配置簡單的服務應用在方便管理員而且增強系統功能的同時,也埋下了安全隱患。因為,關于這些應用服務的說明文檔或是沒有足夠的提醒,或是細碎繁雜使人無暇細研,不熟練的管理員甚至沒有認真檢查這些服務的配置是否清除了已知的安全隱患。

    為此,在安裝操作系統時,應該只選擇安裝必要的協議和服務;對于UNIX系統,應檢查/etc/rc.d/目錄下的各個目錄中的文件,刪除不必要的文件;對于Windows系統,應刪除沒有用到的網絡協議,不要安裝不必要的應用軟件。一般情況下,應關閉Web服務器的IP轉發功能。

    系統功能越單純,結構越簡單,可能出現的漏洞越少,因此越容易進行安全維護。對于專門提供Web信息服務(含提供虛擬服務器)的網站,最好由專門的主機作Web服務器系統,對外只提供Web服務,沒有其他任務。這樣,可以保證:使系統最好地為Web服務提供支持、管理人員單一,避免發生管理員之間出現安全漏洞、用戶訪問單一,便于控制、日志文件較少,減輕系統負擔。

    對于必須提供其他服務,如FTP服務與Web服務共用文件空間,即FTP和HTTP共享目錄,則必須仔細設置各個目錄、文件的訪問權限,確保遠程用戶無法上傳通過Web服務所能讀取或執行的文件。

    (2)使用必要的輔助工具,簡化主機的安全管理

    啟用系統的日志(系統賬戶日志和Web服務器日志)記錄功能。監視并記錄訪問企圖是主機安全的一個重要機制,以利于提高主機的一致性以及其數據保密性。

    UNIX 系統,可以在服務器上安裝 tcp_wrapper 工具。它在其他網絡服務啟動之前首先啟動。tcp_wrapper的配置文件可以控制只有本主機上的用戶才可以使用登錄(Telnet)本服務器。

    Windows系統提供端口訪問控制功能,有助于加強Web服務器的安全。在網絡→協議→TCP/IP屬性→高級,選用“啟用安全機制” → 配置,將出現窗口。選擇“僅允許”,便可以利用“添加”功能,設置允許訪問的端口。

    2.合理配置Web服務器

    ① 在UNIX OS中,以非特權用戶而不是Root身份運行Web服務器。

    ② 設置Web服務器訪問控制。通過IP地址控制、子網域名來控制,未被允許的IP地址、IP子網域發來的請求將被拒絕。

    ③ 通過用戶名和口令限制。只有當遠程用戶輸入正確的用戶名和口令的時候,訪問才能被正確響應。

    ④ 用公用密鑰加密方法。對文件的訪問請求和文件本身都將加密,以便只有預計的用戶才能讀取文件內容。

    3.設置Web服務器有關目錄的權限

    為了安全起見,管理員應對“文檔根目錄”(HTML 文件存放的位置)和“服務器根目錄”(日志文件和配置文件存放的位置)做嚴格的訪問權限控制。

    ① 服務器根目錄下存放日志文件、配置文件等敏感信息,它們對系統的安全至關重要,不能讓用戶隨意讀取或刪改。

    ② 服務器根目錄下存放CGI腳本程序,用戶對這些程序有執行權限,惡意用戶有可能利用其中的漏洞進行越權操作,例如,增、刪、改。

    ③ 服務器根目錄下的某些文件需要由Root來寫或者執行,如Web服務器需要Root來啟動,如果其他用戶對Web服務器的執行程序有寫權限,則該用戶可以用其他代碼替換掉Web服務器的執行程序,當Root 再次執行這個程序時,用戶設定的代碼將以Root身份運行。

    4.網頁高效編程

    現在Web制作技術日趨復雜,再加上網頁編程人員大多使用自己或第三方開發的軟件,而這些軟件有的就沒有考慮安全問題,這就造成了很多Web站點存在著極為嚴重的安全問題。電子世界中充斥著由于主頁制作人員投機取巧而給攻擊者留下侵襲或破壞服務器的殘留物。

    (1)輸入驗證機制不足

    如果驗證提供給特定腳本的輸入有效性上存在不足,攻擊者很有可能作為一個參數提交一個特殊字符和一個本地命令,讓Web服務器在本地執行。如果程序盲目地接受來自Web 頁面的輸入并用外殼命令傳遞它,就可能為試圖攻入網絡的黑客提供訪問權。 當一段代碼(如CGI程序或SSI代碼)被欺騙執行了一個外殼命令時,這個外殼命令會按照與程序本身同樣的訪問級別來執行。所以要確保使用盡可能有限的訪問權限來運行CGI程序和Web服務器,并加強輸入驗證機制杜絕有危害的字符送入Web應用程序。另外我們還可以增加對輸出數據流的檢驗,這樣即使萬一被攻破,也不至于流失重要數據。

    (2)不縝密的編程思路

    網站設計考慮不周,常常會給Web 站點留下后患。例如,把內部應用狀態的數據通過< INPUT TYPE=”HIDDEN” >標記從一個頁面傳遞到另一個頁面,攻擊者可以輕易地引導該應用并得到任何想要的結果。一般的解決方案是把應用狀態通過會話變量保存在服務器上,很多Web開發平臺都有這種機制,如在PHP3中用PHPLIB保存會話數據;在PHP4中用Session()調用;ASP也提供Session對象,Cold Fusion還提供了幾種不同的會話變量。

    (3)客戶端執行代碼亂用

    新興的動態編程技術允許把代碼轉移到客戶端執行,以緩解服務器的壓力。Java 腳本就能完成這一目的,它可以使Web 頁面更加生動,同時提高更多的控制。但在已發現的漏洞中,覆蓋面也很廣,如發送電子郵件、查看歷史文件記錄表、跟蹤用戶在線情況以及上傳客戶的文件。這樣很容易泄露用戶的個人隱私。

    與Java不同,Cookie只是一些數據而不是程序,因此無法運行。客戶端訪問頁面時,服務器不但發送所請求的頁面,還有一些額外數據,當客戶端和服務器再次建立連接時,回送這些Cookie以簡化連接過程,提供更方便的服務。當然Cookie中包含的數據也可能是病毒的源代碼甚至經過編譯的二進制代碼,不過遠程激活它們比較困難,Cookie 真正的問題也是隱私方面,這也是自它誕生以來爭論的焦點。

    解決的方案,我們除了期望網站設計安全以外,也可以在訪問不確定安全的網站時,關閉瀏覽器的Java及Cookie支持功能以避免受到傷害。

    5.安全管理Web服務器

    Web服務器的日常管理、維護工作包括Web服務器的內容更新,日志文件的審計,安裝一些新的工具、軟件,更改服務器配置,對Web進行安全檢查等。主要注意以下幾點。

    • 以安全的方式更新Web服務器(盡量在服務器本地操作)。

    • 經常審查有關日志記錄。

    • 進行必要的數據備份。

    • 定期對Web服務器進行安全檢查。

    • 冷靜處理意外事件。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    回答數量: 1
    亚洲 欧美 自拍 唯美 另类