pear2 / services_linkback
Pingback+webmention 客户端和服务器实现
Requires
- ext-xmlrpc: *
- pear/http2: ^2.0
- pear/http_request2: ^2.5
- pear/net_url2: ^2.2
Requires (Dev)
- pear/stream_var: ^2.0
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ~2.6
This package is auto-updated.
Last update: 2024-09-23 00:26:20 UTC
README
PHP 5.3+ 的 Pingback 和 webmention 客户端和服务器实现。
内容
Linkback 服务器
该包提供了一个基本的 pingback+webmention 服务器实现,可以通过回调轻松定制。
用法
$srv = new \PEAR2\Services\Linkback\Server(); $srv->addCallback(new PingbackLogger()); $srv->run();
术语表
- 源 URL
- 链接到本地目标 URL 的远程 URL
- 目标 URL
- 被源 URL 链接的本地 URL
通过回调进行定制
服务器提供 4 种类型的回调来修改其行为。每个回调需要实现四个接口之一
Services\Linkback\Server\Callback\ITarget
验证目标 URL 是否存在于本地系统中。用于过滤掉非存在 URL 的 pingback。
FIXME:默认实现
Services\Linkback\Server\Callback\ISource
获取源 URL 以进行进一步验证。用于确定源 URL 是否真正存在。
Services_Pingback 提供了 Services\Linkback\Server\Callback\FetchSource
回调类,该类会自动与服务器注册。
Services\Linkback\Server\Callback\ILink
验证源 URL 内容是否真的链接到目标 URL。用于过滤掉不提供链接的虚假 pingback。
Services_Pingback 提供了 Services\Linkback\Server\Callback\LinkExists
回调类,该类会自动与服务器注册。
Services\Linkback\Server\Callback\IStorage
在所有验证完成之后,存储最终处理 pingback - 例如,可以将其记录到文件或数据库中。
Services_Pingback 不提供默认存储实现;您必须自己编写。
待办事项
查看我们可以在http://www.acunetix.com/blog/web-security-zone/wordpress-pingback-vulnerability/中学到什么
Linkback 客户端
告诉某人你链接到了他
$from = 'http://my-blog.example.org/somepost.html'; $to = 'http://b.example.org/inspiration.html'; $lbc = new \PEAR2\Services\Linkback\Client(); $lbc->send($from, $to);
您可以调整 HTTP_Request2 设置
$req = $lbc->getRequest(); $req->setConfig( array( 'ssl_verify_peer' => false, 'ssl_verify_host' => false ) ); $lbc->setRequestTemplate($req);
并且可以更改随链接回请求发送的用户代理头
$req = $lbc->getRequest(); $headers = $req->getHeaders(); $req->setHeader('user-agent', 'my blog engine'); $lbc->setRequestTemplate($req);
还有一个调试模式可用
$lbc->setDebug(true);
此设置将 HTTP 响应存储起来以供以后检查。
安装
使用 composer
$ composer require pear2/services_linkback
关于 Services_Linkback
Services_Linkback 由 Christian Weiske 编写,并许可于 LGPLv3 或更高版本。