gabrieljmj/httprefererfilter

HTTP Referer 阻止器和允许器

dev-master 2014-11-07 22:39 UTC

This package is auto-updated.

Last update: 2024-09-16 04:07:41 UTC


README

Total Downloads Latest Unstable Version License Scrutinizer Code Quality

允许或阻止 HTTP Referer 的过滤器。

##通过 Composer 下载 Composer

{
    "require": {
        "gabrieljmj/httprefererfilter": "dev-master"
    }
}

##阻止器动作 阻止器动作是在不允许的 Referer 尝试请求时执行的。

  • \Gabrieljmj\HttpRefererFilter\BlockerAction\RedirectWithHttpLocationHeader: 重定向到某个地址。在构造函数中传递 \Symfony\Component\HttpFoundation\RedirectResponse 的实例。
  • \Gabrieljmj\HttpRefererFilter\BlockerAction\PageContent: 在页面上添加内容。在构造函数中传递内容(字符串)和 \Symfony\Component\HttpFoundation\Response 的实例。

##阻止 您可以阻止特定的 HTTP Referer。

use Gabrieljmj\HttpRefererFilter\HttpRefererBlocker;
use Gabrieljmj\HttpRefererFilter\BlockerAction\RedirectWithHttpLocationHeader;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;

$action = new RedirectWithHttpLocationHeader(new RedirectResponse('http://mydomain.com/invalid-referer');
$blocker = new HttpRefererBlocker();
$blocker->add('http://example.com', $action)
        ->add('http://example2.com', $action);
$request = new Request($_GET, $_POST, [], $_COOKIE, $_FILES, ['HTTP_REFERER' => 'http://example_valid.com']);
var_dump($blocker->validate($request)); //bool(true)

####示例

如果域名(Referer)列表中,则重定向到 http://mydomain.com/invalid-referer

use Gabrieljmj\HttpRefererFilter\HttpRefererAllower;
use Gabrieljmj\HttpRefererFilter\BlockerAction\RedirectWithHttpLocationHeader;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;

$action = new RedirectWithHttpLocationHeader(new RedirectResponse('http://mydomain.com/invalid-referer');
$blocker = new HttpRefererAllower($action);
$blocker->add('http://example.com')
        ->add('http://example2.com');
$request = new Request($_GET, $_POST, [], $_COOKIE, $_FILES, ['HTTP_REFERER' => 'http://example1.com']);
var_dump($blocker->validate($request)); //bool(true)

##允许 使用它,仅允许特定域的请求。 ####示例