ホームページ  >  記事  >  バックエンド開発  >  Web アプリケーションをより安全にする

Web アプリケーションをより安全にする

WBOY
WBOYオリジナル
2016-06-20 12:33:24976ブラウズ

  • X-Frame-Options
  • セキュアおよび httpOnly の Cookie

X フレームの設定-オプション

https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

X- Frame-Options は主にクリックジャッキング (クリックジャッキング) を防ぐためのものですクリックジャッキング (クリックジャッキング) は、Web ページ内の一見無害なコンテンツ (ボタンなど) の下に悪意のあるコードを隠す方法であり、ユーザーを誘導する手段ですをクリックします。 X-Frame-Options HTTP ヘッダー フィールドは、送信されるリソースを 04a0d55efbbfd646a993fbc01f262c57 または d5ba1642137c3f32f4f4493ae923989c に含めることができるかどうかを示すために使用され、サーバーはこのポリシーを宣言して Web ページのコンテンツを保証できます。ではありません。他のページに埋め込まれます。 X-Frame-Options には 3 つの特定の値があります:

  • DENY は、Web コンテンツをどのフレームにも埋め込むことができないことを示します

  • SAMEORIGIN 同一オリジン ポリシー。Web コンテンツは同じドメインの下のフレームに埋め込むことができますが、同じドメインの下にないフレームには埋め込むことはできないと規定されています。 同一オリジン: プロトコル、ドメイン名、ポートがすべて同じである場合でも、IP が異なるドメインにあると見なされます。具体的な状況は次のとおりです。同じ: http://www.example.com/ dir/page.html 比較:

Compared URL Outcome Reason
http://www.example.com/dir/page2.html 同源 协议主机端口相同
http://www.example.com/dir2/other.html 同源 协议主机端口相同
http://username:password@www.example.com/dir2/other.html 同源 协议主机端口相同
http://www.example.com:81/dir/other.html 不同源 端口不同
https://www.example.com/dir/other.html 不同源 协议不同
http://en.example.com/dir/other.html 不同源 主机名不同
http://example.com/dir/other.html 不同源 主机不同,必须完全匹配
http://v2.www.example.com/dir/other.html 不同源 主机不同,必须完全匹配
http://www.example.com:80/dir/other.html Depends Port explicit. Depends on implementation in browser
  • ALLOW-FROM特定のソースを指定します

サーバー構成

Apache

サイト構成を追加します:

Header always append X-Frame-Options SAMEORIGIN

Nginx

http、サーバー、または場所の構成を追加します

add_header X-Frame-Options SAMEORIGIN;

IIS

サイトの Web.config に追加します

<system.webServer>  ...  <httpProtocol>    <customHeaders>      <add name="X-Frame-Options" value="SAMEORIGIN" />    </customHeaders>  </httpProtocol>  ...</system.webServer>

HAProxy

フロントエンド、リッスン、またはバックエンド構成に追加します:

rspadd X-Frame-Options:\ SAMEORIGIN

より安全な Cookie

Cookie はブラウザーによってクライアントに保存される小さなテキストです ファイルが使用されますクライアントとサーバー間の相互転送用。 Web サーバーは http ヘッダーの Set-Cookie を指定し、その構造は次のとおりです:

Set-Cookie: name=value[; expires=date][; domain=domain][; path=path][; secure][; httpOnly]

ご覧のとおり、Cookie には主に次のフィールドが含まれています:

  • 名前
  • 有効期限
  • ドメイン
  • path
  • secure
  • httpOnly

ここでは主に secure について説明しますhttpOnly

httpOnly フラグ

は、JavaScript document.cookie を通じて Cookie にアクセスできないことをブラウザーに伝えるために使用されます。その目的は、クロスサイト スクリプティング攻撃 (XSS) を回避することです。

secure flag

アプリケーションに Https 経由で Cookie を送信するように強制します

PHP Yii2 で Cookie httpOnly と安全性を設定します

Set _csrf

Yii2 yiiwebCookie のデフォルトは httpOnly です。

class Cookie extends \yii\base\Object{     public $name;    public $value = '';    public $domain = '';    public $expire = 0;    public $path = '/';    public $secure = false;    public $httpOnly = true;}

In config/main.php

    ...    'components' => [        'request' => [            'csrfCookie' => [                'httpOnly' => true,                'secure'   => SECURE_COOKIE,            ],        ],    ...    ]    ...

csrfCookie の httpOnly および secure 属性値を挿入します

Generate secure Cookie

$cookies = Yii::$app->response->cookies;$cookies->add(new Cookie([    'name' => 'accesstoken',     'value' => $accessToken,     'expire' => time() + Token::EXPIRE_TIME,     'secure' => SECURE_COOKIE    ]));

Cookie を更新するときは注意してください。セキュリティで保護された属性

$cookies = Yii::$app->request->cookies;if (($cookie = $cookies->get('accesstoken')) !== null) {    $cookie->secure = SECURE_COOKIE;    // 这里很重要, 不然就会丢失    $cookie->expire = time() + Token::EXPIRE_TIME;    Yii::$app->response->cookies->add($cookie);}
を更新する必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。