gpt4 book ai didi

php - 用于 mod_php 或 PHP 的 Apache2 API(或其他网络服务器)

转载 作者:行者123 更新时间:2023-12-02 22:30:29 25 4
gpt4 key购买 nike

我正在寻找一种方法来使用 API 来操纵运行 PHP 的网络服务器。

例如,我希望能够动态添加 mod 重写规则或阻止某些路径的 IP 地址,所有这些都无需触及 .htaccess 文件。

做类似 this 的事情PHP 存在吗?

最佳答案

PHP 不可能动态更改 Apache 的配置,尽管如您所述,您可以使用 PHP 编辑配置或 .htaccess 文件重新加载配置。但我认为让您的 Web 应用程序对 Web 服务器拥有如此强大的功能会带来很大的安全风险。

动态阻止 IP 的示例可以使用 mod_rewrite's RewriteMap directive 完成.基本上,您将为您的网站编写一个 mod_rewrite 规则,该规则将指示 mod_rewrite 查看您的 PHP 脚本可以维护的外部数据源。

mod_rewrite 文档中有一个示例:Denying Hosts in a Blacklist

Description:We wish to maintain a blacklist of hosts, rather like hosts.deny,and have those hosts blocked from accessing our server.Solution:RewriteEngine onRewriteMap hosts-deny txt:/path/to/hosts.denyRewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUNDRewriteRule ^ - [F]#### hosts.deny#### ATTENTION! This is a map, not a list, even when we treat it as such.## mod_rewrite parses it for key/value pairs, so at least a## dummy value "-" must be present for each entry.##193.102.180.41 -bsdti1.sdm.de -192.76.162.40 -Discussion:The second RewriteCond assumes that you have HostNameLookups turned on,so that client IP addresses will be resolved. If that's not the case,you should drop the second RewriteCond, and drop the [OR] flag fromthe first RewriteCond.

您的 PHP 脚本可以维护这些文本文件(也可以使用其他数据存储),并且您可以根据您的特定需求制定任意数量的规则集来动态控制访问。那行得通吗?

关于php - 用于 mod_php 或 PHP 的 Apache2 API(或其他网络服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com