mosaxiv / cakephp-secure-target-blank

在Html Helper中为target _blank添加noopener和noreferrer。

1.0.2 2017-12-21 14:29 UTC

This package is auto-updated.

Last update: 2024-09-15 05:39:24 UTC


README

MIT License Build Status

如果你在一个链接上使用target="_blank"属性,你可能会让用户容易受到简单的钓鱼攻击。在这些链接上添加rel="noopener noreferrer"将防止这种漏洞。 进一步阅读。

需求

  • PHP 7.0+
  • CakePHP 3.0.0+

安装

你可以使用composer将此插件安装到你的CakePHP应用中。

安装composer包的推荐方法是

composer require mosaxiv/cakephp-secure-target-blank

用法

AppView 设置

加载Helper

// src/View/AppView.php

namespace App\View;

use Cake\View\View;
use SecureTargetBlank\View\Helper\HtmlHelper;

class AppView extends View
{
    public function initialize()
    {
        $this->loadHelper('Html', [
            'className' => HtmlHelper::class
        ]);
    }
}

Helper 使用

使用Html->link(),并添加[target => "_blank"],将自动添加rel="noopener noreferrer"

基本

Html Helper

$this->Html->link('test', 'http://example.com', ['target' => '_blank'])

将渲染以下HTML

'<a href="http://example.com" target="_blank" rel="noopener noreferrer">test</a>'

secureBlank 选项

Html Helper

$this->Html->link('test_title', ['controller' => 'test'], ['target' => '_blank', 'secureBlank' => false]);

将渲染以下HTML

<a href="/test/index" target="_blank">test_title</a>