gabrieljmj / httprefererfilter
HTTP Referer 阻止器和允许器
dev-master
2014-11-07 22:39 UTC
Requires
- symfony/http-foundation: 2.6.*@dev
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-16 04:07:41 UTC
README
允许或阻止 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)
##允许 使用它,仅允许特定域的请求。 ####示例