标签 PHP 下的文章

1 Ubuntu Budgie 准备转而采用 Xfce

去年一月,有报道称,Budgie 桌面计划从基于 GNOME 转向 Enlightenment。但最近,Budgie 项目负责人称,Budgie 桌面希望构建一个纯 Wayland 环境,但由于 Enlightenment 对 Wayland 的只是还只是“实验性”的,因而该开发团队将与 Xfce 开发人员合作,为 Budgie 的 Wayland 未来而努力。

消息来源:The Register
老王点评:虽然我一直不批评 Linux 桌面到处在造轮子,但是目前看起来,无论是 GNOME、Enlightenment,还是 Xfce 都有各自的问题。

2 KDE Plasma 的 Wayland 支持仅剩一个阻碍

KDE Plasma 6.0 的功能冻结很快就会到来,Plasma Wayland 支持的三大阻碍也即将全部清除。在本周的改动中,在 Plasma Wayland 会话中重启或关闭系统将导致未保存更改的应用程序提示用户保存,而不是立即退出。这是 KDE 的最后三个 Wayland 问题之一。目前只剩下一个阻碍:并非所有的粘滞键选项都能正常工作,该问题也将很快解决。

消息来源:Phoronix
老王点评:怎么感觉,一夜之间大家都纷纷快速逃离了 X11 了?

3 PHP 8.0 生命终结

与所有软件一样,PHP 也有一个稳定的开发周期,以便解决新功能、错误和安全问题。2023 年 11 月 26 日,发布于三年前的 PHP 8.0 版本将终止支持,安全问题将不再得到修补。而前几天,PHP 8.3 刚刚发布。8.4 正在开发中。

消息来源:PHP
老王点评:别说 8.0 ,用更老版本的有没有?

超过一半部署的 PHP 版本已经过了支持期

据一份最新的报告,PHP 7.4 是使用最多的版本,有 54% 的受访者在生产中部署了它,尽管它在去年 11 月就停止了支持。PHP 的支持政策是,每个发行分支支持两年,然后第三年只针对关键的安全问题。但是升级可能不是一件小事,8.0 有一个冗长的破坏性变化清单。受访者认为重构是升级中最耗时的部分,其次是测试、基础设施配置、规划和合规性更新。

消息来源:DevClass
老王点评:PHP 8 是比 PHP 7 快多了,但是谁没事去升级啊?PHP 的优势在于大量既有的应用,如果不能很简单的升级,走向衰落也在意料之中。

中国互联网公司也加入 ChatGPT 热潮

除了百度宣布其“问心一言”人工智能服务之外,中国各大互联网公司也纷纷宣布自己的动向。阿里巴巴说它正在内部测试一个 ChatGPT 式的工具,但没有透露更多细节。腾讯周四确认了其在 ChatGPT 式和 AI 生成内容方面的计划,称相关研究正在 “有序进行”。京东表示,它计划将支持 ChatGPT 等应用的一些技术,如自然语言处理,整合到自己的服务中。网易表示,它正在研究将人工智能生成的内容纳入其教育部门。

消息来源:日经新闻
老王点评:让我们相信 —— 他们都是厚积薄发,一夜之间人工智能就有了井喷式的重大突破。

因为说马斯克人气下降,首席工程师被开除

本月早些时候,当埃隆·马斯克锁定他的 Twitter 账户,亲自测试锁定的推文是否比公开的推文产生更多的浏览量时,他把工程师和顾问召集到一起,问他的团队,为什么他的账户有 “1 亿多粉丝”,却只有 “几万个展现”。一位首席工程师站出来解释说,这种下降可能是由于公众对马斯克的兴趣减弱,并提供了谷歌趋势图和对 Twitter 算法的调查结果,发现对 CEO “没有偏见”。马斯克的直接反应是将这位员工免职,“你被解雇了”。至此,Twitter 的首席工程师仅剩下硕果仅存的一位。

消息来源:Ars Technica
老王点评:过气明星非要爆出个大新闻才能不过气。

GNU 创始人 RMS 发布《GNU C 语言介绍及参考手册》

Richard Stallman 最近一直致力于精心编写这本手册,它涵盖了在 GNU/Linux 系统和其他系统上与 GNU 编译器集合(GCC)一起使用的 C 语言。你可以把它作为一本参考手册,也可以从头开始按顺序阅读来学习 C 语言。

消息来源:GNU
老王点评:在不少争议行为之外,RMS 还是安安静静的做些实务更让人尊敬。

欧盟的人工智能法案可能对开源产生寒蝉效应

2021 年,欧盟发布了《人工智能法案》草案以征求意见。据该草案,开源开发者必须遵守风险管理、数据治理、技术文件和透明度的准则,以及准确性和网络安全的标准。一些专家在一项新的研究中警告说,这可能会限制产生 GPT-3 等尖端人工智能工具的研究类型的发展。如果一家公司部署的开源人工智能系统导致了一些灾难性的结果,不难想象该公司可能会试图通过起诉他们建立产品的开源开发者来转移责任。这可能会进一步将控制人工智能未来的权力集中在大型技术公司。

消息来源:Tech Crunch
老王点评:开源开发就是“按原样”提供,既不应该承担额外的责任,也不能承担这些责任,否则个人开发者谁会去贡献,谁敢去贡献?

PHP 8.2 发布了第一个候选版本

在过去的几个月里,经过一系列的 alpha 和 beta 版本,PHP 8.2 的第一个候选版本出来了。PHP 8.2 RC1 带来了各种错误的修复,包括可能的崩溃修复,PHP CLI 的内置 Web 服务器也对处理静态资源进行了各种改进。更多发布细节请参考发布公告。在未来的几周内,预计至少还有五个候选版本,而 PHP 8.2.0 的 GA 版本预计在 11 月 24 日左右。

消息来源:PHP
老王点评:曾经特别流行的 PHP ,感觉不香了。这消息都过去一周了,也没什么人在意。有点感慨,我曾经最熟悉的 Perl、PHP,似乎都渐渐成了老古董,我当时就该学习 C 和 Java。

CrowdSec 门卫被设计成可以包含在任何 PHP 应用程序中,以帮助阻止攻击者。

 title=

PHP 是 Web 上广泛使用的一种编程语言,据估计有近 80% 的网站使用它。我在 CrowdSec 的团队决定,我们需要为服务器管理员提供一个 PHP 门卫,以帮助抵御那些可能试图与 PHP 文件互动的机器人和不良分子。

CrowdSec 门卫可以在应用栈的各个层面上进行设置:Web 服务器、防火墙、CDN 等等。本文关注的是另外一个层次:直接在应用层面设置补救措施。

由于各种原因,直接在应用程序中进行补救是有帮助的:

  • 它为潜在的安全威胁提供了业务逻辑上的答案。
  • 它提供了关于如何应对安全问题的自由。

虽然 CrowdSec 已经发布了一个 WordPress 门卫,但这个 PHP 库被设计成可以包含在任何 PHP 应用中(例如 Drupal)。该门卫有助于阻止攻击者,用验证码挑战他们,让人类通过,同时阻止机器人。

先决条件

本教程假定你在 Linux 服务器上运行 Drupal,并使用 Apache 作为 Web 服务器

第一步是在你的服务器上 安装 CrowdSec。你可以用 官方安装脚本 来完成。如果你使用的是 Fedora、CentOS 或类似系统,请下载 RPM 版本:

$ curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.rpm.sh

在 Debian 和基于 Debian 的系统上,下载 DEB 版本:

$ curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh

这些脚本很简单,所以仔细阅读你下载的脚本,以验证它是否导入了 GPG 密钥并配置了一个新的存储库。当你清楚了它的作用后,就执行它,然后安装。

$ sudo dnf install crowdsec || sudo apt install crowdsec

CrowdSec 会自己检测到所有现有的服务,所以不需要进一步的配置就可以立即得到一个能发挥功能的设置。

测试初始设置

现在你已经安装了 CrowdSec,启动一个 Web 应用漏洞扫描器,比如 Nikto,看看它的表现如何:

$ ./nikto.pl -h http://<ip_or_domain>

 title=

该 IP 地址已被检测到触发了各种场景,最后一个是 crowdsecurity/http-crawl-non_statics

 title=

然而,CrowdSec 只检测问题,需要一个门卫来应用补救措施。这就是 PHP 门卫发挥作用的地方。

用 PHP 门卫进行补救

现在你可以检测到恶意行为了,你需要在网站层面上阻止 IP。在这个时候,没有用于 Drupal 的门卫可用。然而,你可以直接使用 PHP 门卫。

它是如何工作的?PHP 门卫(和其他门卫一样)对 CrowdSec 的 API 进行调用,并检查是否应该禁止进入的 IP,向他们发送验证码,或者允许他们通过。

Web 服务器是 Apache,所以你可以使用 Apache 的安装脚本

$ git clone https://github.com/crowdsecurity/cs-php-bouncer.git
$ cd cs-php-bouncer/
$ ./install.sh --apache

 title=

门卫的配置是用来保护整个网站。可以通过调整 Apache 的配置保护网站的一个特定部分。

尝试访问网站

PHP 门卫已经安装并配置好。由于之前的网络漏洞扫描行动,你被禁止了,你可以尝试访问该网站看看:

 title=

门卫成功阻止了你的流量。如果你在以前的 Web 漏洞扫描后没有被禁止,你可以用增加一个手动决策:

$ cscli decisions add -i <your_ip>

对于其余的测试,删除当前的决策:

$ cscli decisions delete -i <your_ip>

更进一步

我封锁了试图破坏 PHP 网站的 IP。这很好,但那些试图扫描、爬取或 DDoS 的 IP 怎么办?这些类型的检测可能会导致误报,那么为什么不返回一个验证码挑战来检查它是否是一个真正的用户(而不是一个机器人),而不是封锁 IP?

检测爬虫和扫描器

我不喜欢爬虫和坏的用户代理,在 Hub 上有各种方案可以用来发现它们。

确保用 cscli’ 下载了 Hub 上的base-http-scenarios` 集合:

$ cscli collections list | grep base-http-scenarios
crowdsecurity/base-http-scenarios  ✔️ enabled  /etc/crowdsec/collections/base-http-scenarios.yaml

如果没有找到,请安装它,并重新加载 CrowdSec:

$ sudo cscli collections install crowdsecurity/base-http-scenarios
$ sudo systemctl reload crowdsec

用验证码补救

由于检测 DDoS、爬虫或恶意的用户代理可能会导致误报,我更倾向于对任何触发这些情况的 IP 地址返回一个验证码,以避免阻止真正的用户。

为了实现这一点,请修改 profiles.yaml 文件。

/etc/crowdsec/profiles.yaml 中的配置文件的开头添加这个 YAML 块:

---
# /etc/crowdsec/profiles.yaml
name: crawler_captcha_remediation
filter: Alert.Remediation == true && Alert.GetScenario() in ["crowdsecurity/http-crawl-non_statics", "crowdsecurity/http-bad-user-agent"]

decisions:
  - type: captcha
    duration: 4h
on_success: break

有了这个配置文件,任何触发 crowdsecurity/http-crawl-non_staticscrowdsecurity/http-bad-user-agent 场景的 IP 地址都会被强制执行一个验证码(持续 4 小时)。

接下来,重新加载 CrowdSec:

$ sudo systemctl reload crowdsec

尝试自定义的补救措施

重新启动 Web 漏洞扫描器会触发很多场景,所以你最终会再次被禁止。相反,你可以直接制作一个触发 bad-user-agent 场景的攻击(已知的坏用户代理列表在 这里)。请注意,你必须激活该规则两次才能被禁止。

$ curl --silent -I -H "User-Agent: Cocolyzebot" http://example.com > /dev/null
$ curl -I -H "User-Agent: Cocolyzebot" http://example.com
HTTP/1.1 200 OK
Date: Tue, 05 Oct 2021 09:35:43 GMT
Server: Apache/2.4.41 (Ubuntu)
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
X-Content-Type-options: nosniff
Content-Language: en
X-Frame-Options: SAMEORIGIN
X-Generator: Drupal 7 (http://drupal.org)
Content-Type: text/html; charset=utf-8

当然,你可以看到,你的行为会被抓住。

$ sudo cscli decisions list

 title=

如果你试图访问该网站,不会被简单地被阻止,而是会收到一个验证码:

 title=

一旦你解决了这个验证码,你就可以重新访问网站了。

接下来,再次解禁自己:

$ cscli decisions delete -i <your_ip>

启动漏洞扫描器:

$ ./nikto.pl -h http://example.com

与上次不同的是,你现在可以看到,你已经触发了几个决策:

 title=

当试图访问网站时,禁止决策具有优先权:

 title=

总结

这是一个帮助阻止攻击者进入 PHP 网站和应用程序的快速方法。本文只包含一个例子。补救措施可以很容易地扩展,以适应额外的需求。要了解更多关于安装和使用 CrowdSec 代理的信息,查看这个方法指南 来开始。

要下载 PHP 门卫,请到 CrowdSec HubGitHub


via: https://opensource.com/article/22/1/php-website-bouncer-crowdsec

作者:Philippe Humeau 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

鉴于最近发生的事件,它也许没有 维基百科上关于这个想法的文章 中所说的那么“黑色幽默”,但理论仍然是一样的 —— 你目前的团队中要有多少成员突然消失才能使你的组织或项目陷入停顿?这个数字被称为“ 公共汽车系数 bus factor ”,也就是说,有多少人被公共汽车撞到才会导致项目停止运作。今年早些时候,PHP 贡献者 Joe Watkins 认为,PHP 的公共汽车系数是一个惊人的数字,即 2!

Watkins 当时写道:“也许只要有两个人一觉醒来决定干点别的事情,PHP 项目就会缺乏足够的专业技术和资源,从而无法以目前的形式和速度向前发展,”他点名了 Dmitry StogovNikita Popov

上周,幸好 Nikita Popov 没有被公共汽车撞到,但他确实决定不再担任 PHP 相关的职务,而是将他的活动集中在 LLVM 上。

PHP 太大了,不能失败,特别是由于 WordPress 继续依赖它。所以很高兴看到这个新的基金会形成。

—— Richard MacManus (@ricmac) 2021 年 11 月 22 日

同样值得庆幸的是,Watkins 在今年早些时候的文章让一些人看到了眼前的情况,正如他在本周的 后续文章 中写到的,JetBrains(Popov 的雇主)当时就启动 PHP 基金会的问题联系了他。

本周,随着 Popov 的离职,PHP 基金会 正式启动,目标是资助兼职/全职开发人员在 2022 年从事 PHP 核心 的开发工作。

在启动时,将会有 10 家公司(AutomatticLaravelAcquiaZendPrivate PackagistSymfonyCraft CMSTidewaysPrestaShopJetBrains)作为其支持者加入 PHP 基金会 ,预计每年将筹集 30 万美元,JetBrains 每年出资 10 万美元。同时,该基金会是通过“ 基金会即服务 foundation-as-a-service ”供应商 Open Collective 发起的,只有不到 700 名捐款人就已经为该基金会筹集了 4 万多美元。

创建基金会而不是坚持现状的主要好处之一,不仅仅是增加了公共汽车系数 —— 基金会将使对 PHP 的影响多样化。Watkins 指出,在 PHP 的大部分历史中,Dmitry Stogov 的雇主 Zend 一直是主要的财务支持者,因此对该语言的发展方向有一定的影响。同样,JetBrains 在雇用 Popov 开发 PHP 的时候,也增加了影响力。

“说他们没有影响到整个语言的发展方向是不正确的。事实上,他们影响了。语言的许多部分和它的内部结构都是由 Zend 推动的,由他们的预算和专门的工程师促成的,”Watkins 写道。“同样,在 Nikita 为 JetBrains 工作的相对较短的时间内,他们也有某种影响,如果说他们没有,那就是说 Nikita 在受雇于 JetBrains 之前和期间的产出没有区别。”

虽然 Watkins 说,所有的事情都是光明正大的,并且经过了标准的程序来确保如此,但影响力还是不容置疑的,“基金会代表了一种推动语言发展的新方式。它为我们提供了提高公共汽车系数的机制,使我们永远不会再面临我们今天面临的问题,以及过去面临的问题。”

基金会以 临时管理机构 启动,成员包括 Popov、Stogov 和 Watkins。而且 JetBrains 写道,php-src 的任何贡献者都可以向基金会 申请 资助,申请期立即开始,持续 28 天。至于未来会发生什么,PHP 基金会将在前两年把工作重点放在雇用开发人员从事 PHP 核心工作上。至于目前的 RFC 流程,JetBrains 写道,“不会改变,语言的决定将始终留给 PHP 内部社区。”

我为 PHP 基金会做出了贡献,如果你能做到的话,一定会鼓励你也这样做。每一点都能让基金会更强大,并帮助我们的语言和社区!#phpc

—— Matt Trask (@matthewtrask) 2021 年 11 月 22 日


via: https://thenewstack.io/php-gets-a-foundation-to-work-on-php-core/

作者:Mike Melanson 选题:wxy 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Rust 语言社区内讧,审核团队集体辞职

昨天,Rust 社区“帮助维护行为准则和社区标准”的审核团队突然宣布辞职,且即刻生效。他们用拉取请求发出了 该声明,称辞职“是为了抗议核心团队不对任何人负责,除了他们自己。”据悉,这次冲突爆发的原因由来已久,有人 指责 Rust 核心团队权力过大,他们之外的人无法决定谁加入核心团队,在 Rust 社区形成了一种“寡头政治”。也有人认为与 AWS 试图 “接管” Rust 有关。但目前具体情况尚没有得到澄清。而 Rust 核心团队已经火速任命了两位新的 审核团队 成员,以取代辞职的三位前成员。

老王点评:目前发展的很好的 Rust 语言,突然以这样的形式发生内讧,令整个社区为之震动,无论如何,我觉得这对 Rust 语言的发展是不利的。

JetBrains 发起成立 PHP 基金会

为 78% 的网站提供了动力的 PHP 已经有 26 年历史 了,终于有自己的基金会了,虽然这个基金会的成立原因让我百味杂陈。据悉,这项 决定 背后的主要原因之一,是 PHP 的主要贡献者 Nikita Popov 决定离开 JetBrains,将精力从 PHP 转向 LLVM 。他在为 JetBrains 工作的近三年时间里,为 PHP 7.4/8.0/8.1 这三个大版本做出了重要贡献。该基金会 的成员除了 JetBrains 还包括 WordPress 背后的 Automattic,以及 Laravel、Zend 等公司。

老王点评:我居然忘记了 PHP 一直没有自己的基金会。虽然这次是由于主要贡献者离开而成立,但是希望可以带来更好的发展。

因微软赏金太少,安全研究人员曝光 Windows 提权零日漏洞

有安全研究人员在推特上说:由于微软调整了漏洞赏金计划,其原本想提交的一个影响所有受支持 Windows 操作系统版本的提权漏洞的“认定价值”,从 10000 美元瞬间跌到了 1000 美元。他称,大家对微软的新漏洞赏金政策感到十分沮丧,因而将其发现的漏洞 公之于众。有安全研究人员认为他披露的漏洞,很容易让普通用户提权获得 SYSTEM 系统权限。

老王点评:虽然说微软这样的做法有些不厚道,但是一怒曝光也欠考虑。如果不满意微软的赏金,你可以不挖啊,这样直接曝光和利用漏洞做黑产有什么区别?