安全性是建立 Web 應用程式時的另一個重要功能。它向網站用戶保證他們的資料是安全的。 CakePHP 提供了一些工具來保護您的應用程式。
加密與解密
CakePHP中的安全庫提供了方法,透過這些方法我們可以對資料進行加密和解密。以下是兩種方法,用途相同。
static Cake\Utility\Security::encrypt($text, $key, $hmacSalt = null) static Cake\Utility\Security::decrypt($cipher, $key, $hmacSalt = null)
加密方法將以文字和金鑰作為參數對資料進行加密,傳回值將是經過 HMAC 校驗和的加密值。
要對資料進行雜湊處理,請使用 hash() 方法。以下是 hash() 方法的語法。
static Cake\Utility\Security::hash($string, $type = NULL, $salt = false)
CSRF
CSRF 代表跨站請求偽造。透過啟用 CSRF 元件,您可以免受攻擊。 CSRF 是 Web 應用程式中的常見漏洞。
它允許攻擊者捕獲並重播先前的請求,有時還可以使用影像標籤或其他網域上的資源提交資料請求。只需將 CsrfComponent 新增至元件陣列即可啟用 CSRF,如下所示 -
public function initialize(): void { parent::initialize(); $this->loadComponent('Csrf'); }
CsrfComponent 與 FormHelper 無縫整合。每次使用 FormHelper 建立表單時,它都會插入一個包含 CSRF 令牌的隱藏欄位。
雖然不建議這樣做,但您可能想要在某些請求上停用 CsrfComponent。您可以在 beforeFilter() 方法期間使用控制器的事件調度程序來執行此操作。
public function beforeFilter(Event $event) { $this->eventManager()->off($this->Csrf); }
安全組件
安全元件為您的應用程式應用更嚴格的安全性。它提供了各種任務的方法,例如 -
限制您的應用程式接受哪些 HTTP 方法 - 您應該始終驗證在執行副作用之前使用的 HTTP 方法。您應該檢查 HTTP 方法或使用 CakeNetworkRequest::allowMethod() 以確保使用正確的 HTTP 方法。
-
表單竄改保護 - 預設情況下,SecurityComponent 會阻止使用者以特定方式竄改表單。 SecurityComponent 將阻止以下事情 -
無法將未知欄位新增至表單。
無法從表單中刪除欄位。
隱藏輸入中的值無法修改。
要求使用 SSL - 所有需要 SSL 保護的操作
限制跨控制器通訊 - 我們可以限制哪個控制器可以向該控制器發送請求。我們還可以限制哪些操作可以向該控制器的操作發送請求。
範例
在 config/routes.php 檔案中進行更改,如下列程式所示。
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages', ['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('login',['controller'=>'Logins','action'=>'index']); $builder->fallbacks(); });
在 src/Controller/LoginsController.php 建立一個 LoginsController.php 檔案。 將以下程式碼複製到控制器檔案中。
src/Controller/LoginsController.php
<?php namespace App\Controller; use App\Controller\AppController; class LoginsController extends AppController { public function initialize() : void { parent::initialize(); $this->loadComponent('Security'); } public function index(){ } } ?>
在 src/Template 處建立目錄 Logins 並在該目錄下建立一個名為 index.php 的 View 檔案。將以下程式碼複製到該文件中。
src/Template/Logins/index.php
<?php echo $this->Form->create(NULL,array('url'=>'/login')); echo $this->Form->control('username'); echo $this->Form->control('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
透過造訪以下 URL 來執行上述範例 - http://localhost/cakephp4/login
輸出
執行後,您將收到以下輸出。

以上是CakePHP 安全性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)