YII Frameworkフレームワークチュートリアル、yiiframework_PHPチュートリアルのセキュリティソリューションの詳細説明

WBOY
リリース: 2016-07-12 08:57:14
オリジナル
833 人が閲覧しました

YII Frameworkフレームワークチュートリアル、yiiframeworkのセキュリティソリューションの詳細説明

この記事では、YII Frameworkフレームワークのセキュリティソリューションについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

「ハッカー」が蔓延する時代において、Web アプリケーションのセキュリティ問題は非常に重要です。攻撃をある程度防ぐために、YII は攻撃を防ぐためのソリューションをいくつか提供します。もちろん、ここで議論されている安全性は一方的なものですが、一見の価値はあります。

公式の解決策は次のとおりです

1. クロスサイトスクリプティング攻撃の防止

クロスサイト スクリプティング攻撃 (略して XSS)。Web アプリケーションがユーザーからユーザー データを収集します。 攻撃者は多くの場合、JavaScript、VBScript、ActiveX、HTML、または Flash を脆弱な Web アプリケーションに挿入して、訪問者を混乱させ、訪問者情報を収集します。 たとえば、フォーラム システムの設計が不十分だと、ユーザー入力がチェックされずに表示される可能性があります。 攻撃者は、悪意のある JavaScript コードを投稿コンテンツに挿入する可能性があります。 このようにして、他の訪問者がこの投稿を読んだときに、これらの JavaScript コードを訪問者のコンピュータで実行できます。

XSS 攻撃を防ぐための最も重要な対策の 1 つは、ユーザーが入力したコンテンツを表示する前にコンテンツ検査を実行することです。 たとえば、コンテンツ内の HTML をエスケープできます。ただし、この方法ではすべての HTML タグが無効になるため、場合によってはこの方法はお勧めできません。

Yii は HTMLPurifier を統合し、HTMLPurifier クラスをカプセル化する非常に便利なコンポーネント CHtmlPurifier を開発者に提供します。効果的なレビュー、セキュリティ、ホワイトリスト機能を通じて監査対象のコンテンツからすべての悪意のあるコードを削除し、フィルタリング後にフィルタリングされたコンテンツが基準を満たしていることを確認できます。

CHtmlPurifier コンポーネントはウィジェットまたはフィルターとして使用できます。 ウィジェットとして使用すると、CHtmlPurifier はビューに表示されるコンテンツを安全にフィルタリングできます。 コード例は次のとおりです:

リーリー

2. クロスサイトリクエストフォージェリ攻撃の防止

クロスサイト リクエスト フォージェリ (CSRF と呼ばれる) 攻撃。つまり、ユーザーのブラウザが悪意のある Web サイトにアクセスすると、攻撃者はユーザーのブラウザに、信頼できる Web サイトに対して攻撃者が指定したリクエストを開始させます。 たとえば、悪意のある Web サイトに画像があり、この画像の src アドレスが銀行の Web サイト http://bank.example/withdraw?transfer=10000&to=someone を指しているとします。 ユーザーが銀行の Web サイトにログインした後、この悪意のある Web ページにアクセスすると、ユーザーのブラウザは銀行の Web サイトに「攻撃者の口座に 10,000 元を送金する」という指示を送信します。 クロスサイト攻撃はユーザーが信頼する特定の Web サイトを利用しますが、CSRF 攻撃は逆に、Web サイト上のユーザーの特定のユーザー ID を利用します。

CSRF 攻撃を防ぐには、GET リクエストはデータの取得のみが許可されており、サーバー上のデータを変更することはできないということを覚えておく必要があります。 POST リクエストには、フォーム データのソースと実行結果の宛先が同じであることを保証するために、サーバーが認識できるいくつかのランダムな値が含まれている必要があります。

Yii は、POST ベースの攻撃の防止に役立つ CSRF 防止メカニズムを実装しています。 このメカニズムの核心は、Cookie にランダムなデータを設定し、それをフォームによって送信された POST データ内の対応する値と比較することです。

デフォルトでは、CSRF 防止は無効になっています。これを有効にしたい場合は、アプリケーション構成内のコンポーネントの CHttpRequest セクションを編集します。

コード例:

リーリー

フォームを表示するには、HTML コードを自分で記述する代わりに、CHtml::form を使用します。 CHtml::form はフォームに隠しアイテムを自動的に埋め込むことができるため、この隠しアイテムには検証に必要なランダム データが保存され、フォームの送信時に検証のためにサーバーに送信されます。

3. Cookie 攻撃の防止

Cookie を攻撃から保護することは非常に重要です。セッションIDは通常Cookieに保存されるためです。 攻撃者が有効なセッション ID を盗むと、そのセッション ID に対応するセッション情報を使用することができます。

予防策は次のとおりです:

SSL を使用して安全なチャネルを作成し、HTTPS 接続経由でのみ認証 Cookie を送信できます。このようにして、攻撃者は送信された Cookie を解読できなくなります。

Cookie の有効期限を設定し、すべての Cookie とセッション トークンに対して同じことを行います。これにより、攻撃される可能性が減少します。

クロスサイトコード攻撃を防止します。これは、ユーザーのブラウザで任意のコードをトリガーし、ユーザーの Cookie を漏洩する可能性があるためです。

Cookieが変更されたときにCookieの内容を確認します。

Yii は Cookie が変更されるのを防ぐために Cookie 検証メカニズムを実装しています。有効にすると、Cookie 値の HMAC チェックを実行できるようになります。

Cookieの検証はデフォルトでは無効になっています。これを有効にしたい場合は、アプリケーション構成内のコンポーネントの CHttpRequest セクションを編集します。

コード例:

リーリー

必ずYiiによって検証されたCookieデータを使用してください。 Cookie 操作には Yii の組み込み Cookie コンポーネントを使用します。 $_COOKIES は使用しません。

// 检索一个名为$name的cookie值
$cookie=Yii::app()->request->cookies[$name];
$value=$cookie->value;
......
// 设置一个cookie
$cookie=new CHttpCookie($name,$value);
Yii::app()->request->cookies[$name]=$cookie;

ログイン後にコピー

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例
  • 使用Composer安装Yii框架的方法
  • Yii使用migrate命令执行sql语句的方法
  • YII Framework框架使用YIIC快速创建YII应用之migrate用法实例详解
  • YII Framework框架教程之使用YIIC快速创建YII应用详解
  • YII Framework框架教程之国际化实现方法
  • YII Framework框架教程之缓存用法详解
  • YII Framework框架教程之日志用法详解
  • YII Framework教程之异常处理详解
  • Yii rules常用规则示例

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1110086.htmlTechArticleYII Framework框架教程之安全方案详解,yiiframework 本文讲述了YII Framework框架的安全方案。分享给大家供大家参考,具体如下: web应用的安全问...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート