2013-08-22 63 views
0

在我的Web應用程序(java/tomcat/struts/mysql)中保留用戶更改日誌的最佳方式是什麼?我給出帳戶,每個帳戶都有多個用戶。我希望帳戶管理員能夠在任何給定時間看到誰做了什麼。我希望能夠訪問它的全部內容。首先,我需要一種方法來了解哪些字段已被更改,然後我需要在每個帳戶可以看到的地方記錄更改。很明顯,我不想讓應用放慢速度。我在這個網站上閱讀了一個答案,建議保留一個數據庫日誌 - 在發送每個查詢後查詢數據庫的變化。不知道該怎麼做。在Web應用程序中保存用戶更改的日誌

回答

1

這取決於您的Web應用程序的性質。假設您的Web應用程序是一個電子商務系統,它允許用戶添加新產品或更新現有產品。當用戶執行添加新產品等特定操作時,其基本目標是捕獲其用戶名,操作和時間戳。更新產品時,您可能想要跟蹤他更新的價值,舊價值和他什麼時候改變價值。

要做到這一點,首先你需要

  1. 創建一個審計表

    • 顯然要跟蹤上次修改人,時間戳,通過創建等
  2. 每當執行一些更改/操作時創建一個日誌記錄機制。

    • 有幾種方法可以做到這一點,你可以通過應用程序來做到這一點,或將所有事情都留給數據庫觸發器。我建議使用觸發器來檢測數據庫中的任何創建/更新/刪除事件,並要求觸發器捕獲細節並寫入審計表。我認爲這是最簡潔和維護少的方式。但是,如果要使用應用程序登錄,則必須更改代碼,創建新方法以將詳細信息捕獲到操作類中的審覈表。在MySQL觸發

更多信息here

-1

我一直在尋找一個類似「法」來記錄交易和其他的東西在我的web應用程序。就在瀏覽Google時,我發現這個鏈接: https://www.owasp.org/index.php/Logging_Cheat_Sheet告訴你兩種可能的登錄方式:無論是在數據庫還是在某些日誌文件的文件系統上......

當使用文件系統中,優選使用單獨的 分區比那些由操作系統使用的,其它的應用程序 文件和用戶生成的內容對於基於文件的日誌,應用關於嚴格 權限的用戶可以訪問目錄以及目錄中的文件的權限在Web應用程序中, 日誌不應在Web可訪問位置公開,並且如果已完成 ,則應該具有受限訪問權限並使用純文本配置 MIME鍵入(不是HTML)使用數據庫時,最好 使用單獨的數據庫僅用於編寫日誌 數據並具有非常嚴格的數據庫,表格,功能和 命令權限使用標準格式通過安全協議 記錄並將事件數據或日誌文件發送到其他系統,例如,通用 系統日誌上的日誌文件系統(CLFS),通用事件格式(CEF),未來可能的公共事件表達式(CEE);標準格式 方便與集中式日誌記錄服務

整合他們已經解釋精美的可能的方式,我們可以登錄,什麼應該被記錄下來,避免什麼了。

希望它對你有用。

相關問題