pear2/services_linkback

Pingback+webmention 客户端和服务器实现

v0.4.0 2023-03-22 21:18 UTC

This package is auto-updated.

Last update: 2024-09-23 00:26:20 UTC


README

PHP 5.3+ 的 Pingbackwebmention 客户端和服务器实现。

内容

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 或更高版本

主页
http://pear2.php.net/PEAR2_Services_Linkback
错误跟踪器
https://github.com/pear2/Services_Linkback/issues
文档
examples/ 文件夹。
Packagist
https://packagist.org.cn/packages/pear2/services_linkback
单元测试状态

https://travis-ci.org/pear2/Services_Linkback

https://travis-ci.org/pear2/Services_Linkback.svg?branch=master