国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
暗號化と復(fù)號化
CSRF
セキュリティコンポーネント
出力

CakePHP のセキュリティ

Sep 10, 2024 pm 05:26 PM
php cakephp PHP framework

セキュリティは、Web アプリケーションを構(gòu)築する際のもう 1 つの重要な機能です。これにより、Web サイトのユーザーにデータが安全に保護されていることを保証します。 CakePHP は、アプリケーションを保護するためのツールをいくつか提供します。

暗號化と復(fù)號化

CakePHP のセキュリティ ライブラリは、データを暗號化および復(fù)號化できるメソッドを提供します。以下に、同じ目的で使用される 2 つのメソッドを示します。

static Cake\Utility\Security::encrypt($text, $key, $hmacSalt = null)
static Cake\Utility\Security::decrypt($cipher, $key, $hmacSalt = null)

encrypt メソッドは、データを暗號化するための引數(shù)としてテキストとキーを受け取り、戻り値は HMAC チェックサムで暗??號化された値になります。

データをハッシュするには、hash() メソッドを使用します。以下は hash() メソッドの構(gòu)文です。

static Cake\Utility\Security::hash($string, $type = NULL, $salt = false)

CSRF

CSRF は クロスサイト リクエスト フォージェリ の略です。 CSRF コンポーネントを有効にすると、攻撃から保護されます。 CSRF は、Web アプリケーションの一般的な脆弱性です。

これにより、攻撃者は以前のリクエストをキャプチャして再生し、場合によってはイメージ タグや他のドメインのリソースを使用してデータ リクエストを送信することができます。 CSRF は、以下に示すように CsrfComponent をコンポーネント配列に追加するだけで有効にできます -

public function initialize(): void {
   parent::initialize();
   $this->loadComponent('Csrf');
}

CsrfComponent は FormHelper とシームレスに統(tǒng)合されます。 FormHelper でフォームを作成するたびに、CSRF トークンを含む隠しフィールドが挿入されます。

これはお勧めできませんが、特定のリクエストでは CsrfComponent を無効にすることをお勧めします。これを行うには、beforeFilter() メソッド中にコントローラーのイベント ディスパッチャーを使用します。

public function beforeFilter(Event $event) {
   $this->eventManager()->off($this->Csrf);
}

セキュリティコンポーネント

セキュリティ コンポーネントは、アプリケーションにより厳??格なセキュリティを適用します。 ?

のようなさまざまなタスクのためのメソッドを提供します。
  • アプリケーションが受け入れる HTTP メソッドの制限 - 副作用を?qū)g行する前に、使用されている 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 にアクセスして、上記の例を?qū)g行します-http://localhost/cakephp4/login

出力

実行すると、次の出力が表示されます。

Submit Login

以上がCakePHP のセキュリティの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? Jun 23, 2025 am 12:55 AM

PhpBecamepopularforwebdevelopmentduetoitseaseaseaseaseasease、SeamlessintegrationWithhtml、widespreadhostingsupport、andalargeecosystemincludingframeworkelavelandcmsplatformslikewordspresspressinsinsionsisionsisionsisionsisionsionsionsisionsionsionsisionsisions

最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? 最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? Jun 23, 2025 am 12:56 AM

postaycurrentwithpdevellyments andbest practices、follow keynewsourceslikephp.netandphpweekly、egagewithcommunitiessonforums andconferences、keeptooling and gradivallyadoptnewfeatures、andreadorcontributeTopensourceprijeprijeprijeptrijeprijeprests.

PHPタイムゾーンを設(shè)定する方法は? PHPタイムゾーンを設(shè)定する方法は? Jun 25, 2025 am 01:00 AM

tosettherighttimezoneInphp、usedate_default_timezone_set()functionthestthestofyourscriptwithavalididentifiersiersuchas'america/new_york'.1.usedate_default_timezone_set()beforeanydate/timefunctions.2.2.Altertentally、confuturethephp.inifilebyset.

PHPでのユーザー入力を検証して、特定の基準を満たすことを確認するにはどうすればよいですか? PHPでのユーザー入力を検証して、特定の基準を満たすことを確認するにはどうすればよいですか? Jun 22, 2025 am 01:00 AM

tovalidateuserinputinphp、usebuilt-validationfunctionslikefilter_var()andfilter_input()、applyRegularexpressionsforcustomformatsusususussusorphoneNumbers、checkdatatypesfornumerueSlikeageorpricepriceprice

PHP(serialize()、unserialize())のデータシリアル化とは何ですか? PHP(serialize()、unserialize())のデータシリアル化とは何ですか? Jun 22, 2025 am 01:03 AM

thephpfunctionSerialize()andunserialize()areusedtoconvertcomplexdatastructostorestorestorustorasandabackagain.1.serialize()c onvertsdatalikecarraysorobjectsraystringcontainingtainingtainingepeandStructureinformation.2。

HTMLファイルにPHPコードを埋め込むにはどうすればよいですか? HTMLファイルにPHPコードを埋め込むにはどうすればよいですか? Jun 22, 2025 am 01:00 AM

PHPコードをHTMLファイルに埋め込むことができますが、ファイルに.phpの拡張機能があることを確認して、サーバーが正しく解析できるようにします。標準タグを使用してPHPコードをラップし、HTMLのどこにでも動的コンテンツを挿入します。さらに、同じファイルでPHPとHTMLを複數(shù)回切り替えて、條件付きレンダリングなどの動的関數(shù)を?qū)g現(xiàn)できます。短いラベル、引用マークエラー、または省略されたエンドラベルによって引き起こされる問題を回避するために、サーバーの構(gòu)成と構(gòu)文の正確性に注意してください。

クリーンで保守可能なPHPコードを書くためのベストプラクティスは何ですか? クリーンで保守可能なPHPコードを書くためのベストプラクティスは何ですか? Jun 24, 2025 am 12:53 AM

清潔で維持しやすいPHPコードを書くための鍵は、標準、合理的な構(gòu)造に従って、コメント、テスト能力を適切に利用する明確な命名にあります。 1。$ userDataやcalculatetotalprice()などの明確な変數(shù)、関數(shù)、クラス名を使用します。 2。PSR-12標準統(tǒng)一コードスタイルに従ってください。 3.責任に従ってコード構(gòu)造を分割し、MVCまたはLaravelスタイルのカタログを使用して整理します。 4.麺スタイルのコードを避け、単一の責任でロジックを小さな関數(shù)に分割します。 5.キーポイントにコメントを追加し、インターフェイスドキュメントを書き込み、パラメーター、返品値、例外を明確にします。 6.テスト可能性を改善し、依存関係を採用し、グローバルな狀態(tài)と靜的な方法を減らします。これらのプラクティスは、コードの品質(zhì)、コラボレーション効率、メンテナンス後の容易さを改善します。

See all articles