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 |
サイト構成を追加します:
Header always append X-Frame-Options SAMEORIGIN
http、サーバー、または場所の構成を追加します
add_header X-Frame-Options SAMEORIGIN;
サイトの Web.config に追加します
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ...</system.webServer>
フロントエンド、リッスン、またはバックエンド構成に追加します:
rspadd X-Frame-Options:\ SAMEORIGIN
Cookie はブラウザーによってクライアントに保存される小さなテキストです ファイルが使用されますクライアントとサーバー間の相互転送用。 Web サーバーは http ヘッダーの Set-Cookie を指定し、その構造は次のとおりです:
Set-Cookie: name=value[; expires=date][; domain=domain][; path=path][; secure][; httpOnly]
ご覧のとおり、Cookie には主に次のフィールドが含まれています:
ここでは主に secure について説明しますhttpOnly
は、JavaScript document.cookie を通じて Cookie にアクセスできないことをブラウザーに伝えるために使用されます。その目的は、クロスサイト スクリプティング攻撃 (XSS) を回避することです。
アプリケーションに Https 経由で Cookie を送信するように強制します
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;}
= Html::csrfMetaTags() ?> を使用すると、デフォルトは httpOnly です。これはリクエストを挿入することで変更できます:
In config/main.php
... 'components' => [ 'request' => [ 'csrfCookie' => [ 'httpOnly' => true, 'secure' => SECURE_COOKIE, ], ], ... ] ...
csrfCookie の httpOnly および secure 属性値を挿入します
$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);}を更新する必要があります。