PHPMaker 2025 的新增功能
PHPMaker 2025 是另一個重大升級,增加了許多新功能,包括許多安全功能。 PHPMaker 可能是同類產品中最強大、最靈活的產品,但仍然一如既往地易於使用。
重要資訊 如果您從先前的版本升級,請注意此版本中有一些重大更改,請先閱讀: 遷移到 v2025 。
增強型 Two Factor Authentication 身份驗證
- 支援 Google Authenticator、電子郵件和短信
- 支援超級管理員帳戶
-
電子郵件地址和電話號碼驗證
-
運行時可選擇的 2FA 類型
- 支援各種第三方郵件程式(用於發送電子郵件)
- 支援各種第三方通知程式(用於發送簡訊)
- 輕鬆發送基於文字的電子郵件/簡訊通知
- MessageEvent、SentMessageEvent 與 FailedMessageEvent
-
相同/父用戶層級的 User ID 安全性 - 允許具有相同/父使用者等級的使用者存取記錄
-
使用者層級層次結構 - 使用者層級將自動擁有子使用者層級的所有權限
使用存取控制,您可以控制存取特定 URL 所需的權限。
- 透過 URL 模式保護您的網站
- 使用 Role 授予對網站特定部分的存取權限
- 層次結構Role(對應到靜態使用者層級層次結構)
- 允許匿名用戶進行不安全的訪問
- 對不同的 URL 強制使用 HTTPS 或 HTTP
為了更好地保護密碼,建議將舊密碼遷移到最新的雜湊演算法。現在您可以輕鬆遷移,如果您的系統支援更好的雜湊演算法,用戶的密碼將使用更新的演算法重新雜湊並儲存。
- 只需透過進階設定即可啟用 遷移密碼演算法
- 密碼雜湊選項(包括演算法)
- 對用戶透明
增強了嘗試登入追蹤,可使用三重追蹤:
- IP 位址 + 使用者名稱的 最大失敗嘗試次數 (預設為 3) (「本機」限制器),
- 5 * 使用者名稱 的最大失敗嘗試次數 (「全域」限制器)。此限制可防止攻擊者使用多個 IP 位址繞過第一個限制。
- 5 * IP 位址 的最大失敗嘗試次數 (「全域」限制器)。此限制可防止攻擊者使用多個使用者名稱繞過第一個限制。
全域和本地限制器可以使用不同的策略和設置,有關詳細信息,請參閱 追蹤失敗的嘗試 。
-
無需 Server Event 的 LDAP 查詢 - 支援
search_dn
、search_password
、query_string
和extra_fields
高級設定進行搜索,不再需要使用Ldap_Validated
Server Event 自行搜索 -
透過以下方式取得經過驗證的 LDAP 使用者(例如取得額外欄位)
GetLdapUser()
- LDAP 使用者的 預設 Role(用於存取控制)
有時,能夠從一個使用者切換到另一個使用者而無需登出並再次登入(例如,當您正在偵錯使用者發現您無法重現的某些內容時)會很有用。管理員現在可以模擬其他使用者(來自資料庫)。啟用後,管理員可以從使用者表的清單頁面中選擇要模擬的使用者。您也可以透過程式碼向其他一些使用者授予此特殊權限。
在先前的版本中,
「允許透過 URL 登入」
進階設定允許使用者透過類似 的 URL 登入
login?username=xxx&password=yyy
。然而,在 URL
中傳遞密碼是不安全的,該選項現在已被登入連結取代。登入連結是一種無密碼身份驗證機制。每當用戶想要登入時,就會產生一個新連結並發送給他們(例如使用電子郵件)。當您單擊連結時,該連結將在應用程式中對使用者進行完全身份驗證。這種身份驗證方法可以幫助您消除大部分與身份驗證相關的客戶支援(例如我忘記了密碼,如何更改或重設我的密碼等)
- 用戶啟動連結也使用身份驗證機制
- 允許透過全域函數自行建立登入連結
- 允許管理員透過電子郵件發送登入鏈接
新的
「軟刪除」
行為可讓您「軟刪除」記錄,透過使用時間戳將它們標記為已刪除,在 SELECT
時間過濾它們,但不會明確地將它們從資料庫中刪除。您只需要指定一個可以為 null 的字段,該字段將用於確定物件是否被刪除(
null
意味著它沒有被刪除,或者日期值意味著它被刪除)。您還可以設定未來日期,以便在到期時軟刪除記錄。支援 ORM Entity。
內容安全策略 (CSP)
是附加的安全層,有助於偵測和緩解某些類型的攻擊,包括跨網站腳本 (XSS) 和資料注入攻擊。配置內容安全性原則涉及新增
Content-Security-Policy
HTTP 標頭,該策略是一個字串,其中包含
描述內容安全策略的策略
指令
。 PHPMaker 2025 包含一個 CSP Middleware來產生標頭。您可以透過設定來完全自訂這些指令
Config("CSP")
。
PHPMaker 現在提供檔案系統抽象,它提供了一個介面來與多種類型的檔案系統交互,包括:
- Local
- AWS S3
- Google Cloud 儲存
- Azure Blob 儲存
文件系統主要用於文件上傳。現在您可以透過 File URI 輕鬆指定遠端全域上傳資料夾和特定於欄位的上傳資料夾 。 還提供 檔案系統 API Global Function 以簡化使用。
偵錯 PHP 程式碼是一項具有挑戰性的任務,但偵錯是開發過程中不可避免的一部分。您必須正確配置 php.ini 來報告、顯示和記錄錯誤,以便自行偵錯,但 PHPMaker 透過以下方式使 運行時 的偵錯變得更容易:
新的
Assert
驗證類型是僅伺服器端驗證,旨在根據
約束
驗證值。它支援許多最常用的約束(請參閱
支援的約束
),一些約束很簡單(例如
NotBlank
約束驗證值不為空),而其他約束則有多個可用的配置選項(例如
Choice
約束確保給定值是一)一組給定的有效選擇)。您也可以建立自己的自訂約束。驗證器也可以直接在伺服器端
Form_CustomValidate
Server Event 中使用
。
- 生成時自動儲存項目
- 啟動用戶連結生命週期(秒)
- 使用表格過濾器來過濾字段
- 路由和容器的快取資料夾
- DBAL版本
- PostgreSQL 驅動程式
- SQLite驅動程式
- 文件儲存 進階設定
- LDAP 進階設定
- 軟刪除時間感知期
- 使用 PHPMailer(預設使用 Symfony Mailer)
- 使用 OAuth2(為自訂提供者啟用 HybridAuth)
- 郵件程式 DSN(用於第三方郵件程式)
- 密碼哈希 高級設置
- 使用內容安全策略 (CSP)
- 使用隨機數(嚴格的 CSP)
- 記錄所有匯出請求
- 支援 PHP >= 8.1.0
- 類型聲明
- 一律使用 UTF-8
- CSRF Middleware
- 儲存多語言項目的語言 ID
- 用於區分 Master/Detail session 變數的瀏覽器標籤 ID
- 透過多項選擇搜尋查找字段
- 安全事件(身份驗證事件等)
- "永遠記住我" 選項
- Container_Built Server Event - 建置 Container 後調用
- Services_Config Server Event - 用於設定 Authentication Middleware 的服務
- 刪除了 Ldap_Validated Server Event 以支援 LDAP 高級設置
- 使用 Grid 的 Insert/Update/Delete 時, Row_Inserting/Updating/Delete Server Event 允許跳過 Insert/Update/Delete
- 最大備份項目版本增加至 100
- Doctrine ORM 3.0 和 DBAL 4.0
- 在周/日視圖中使用 allDay 查看新事件(日曆報告)
- 更新到Dompdf 3並支援 Callback (dompdf Extension)
- 日期時間選擇器的最小/最大日期欄位(DateTimePicker Extension)
- Segoe UI 字體和更大的字體大小 (UI)
- 其他小改進