标签: pcre

mod_security - 超出 PCRE 限制

几乎在每个请求中,我都会收到以下错误:

Rule execution error - PCRE limits exceeded (-8): (null).

经过一堆谷歌搜索后,唯一的解决方案似乎是

a) 在您的 httpd.conf 中添加以下内容

SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
Run Code Online (Sandbox Code Playgroud)

b) 将以下内容添加到您的 php.ini

pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
Run Code Online (Sandbox Code Playgroud)

c) 使用使用-disable-pcre-match-limit选项编译的版本。


我正在运行以下内容:

Apache/2.5.12 ( http://www.modsecurity.org/ ) 的ModSecurity 。

Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze8 with Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8

对于 ModSec 我的规则,我使用的是 OWASP ModSecurity 核心规则集项目版本 (CRS) 版本 2.2.3,这是本文发布时的最新版本。

我的 httpd.conf 主要包括:

<IfModule security2_module>
    SecUploadDir /var/asl/data/suspicious
    SecDataDir /var/asl/data/msa
    SecTmpDir /tmp
    SecAuditLogStorageDir /var/asl/data/audit

    Include modsecurity.d/modsecurity_crs_10_config.conf
    Include modsecurity.d/activated_rules/*.conf

    SecRuleEngine On

    # Debug log
    SecDebugLog /var/log/apache2/modsec_debug.log
    SecDebugLogLevel …
Run Code Online (Sandbox Code Playgroud)

mod-security pcre apache-2.2

12
推荐指数
1
解决办法
2万
查看次数

为什么在 Nginx 正则表达式中不需要转义“/”?

所以我终于把学习正则表达式变成了一件事情。通常在使用正则表达式时,需要用“\”转义分隔符(如“/”)。但是当我在 Nginx 中使用正则表达式时,似乎“/”被视为字面意思而不是分隔符。

Nginx 使用 PCRE 引擎来评估正则表达式,所以对我来说,你可以只抛出一个未转义的分隔符而没有任何后果,这对我来说毫无意义。

例如,下面的正则表达式允许单个 IP 地址并拒绝所有其他地址:

location ~ /\.serverfault {
    allow 1.2.3.4;
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

但我认为它需要像这样才能正常工作:

location ~ \/\.serverfault {
    allow 1.2.3.4;
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

nginx regex pcre

12
推荐指数
1
解决办法
5650
查看次数

什么是 PCRE 限制?

在 ModSecurity 中有PCRE limits exceeded错误。

我知道我可以通过设置规则来解决这个问题,例如:

SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
Run Code Online (Sandbox Code Playgroud)

但是,这些规则实际上在做什么?PCRE 限制递归设置为 150,000 是什么意思?通过将这些设置得如此高,我允许通过哪些安全漏洞?什么是recursionlimit是什么意思?

我知道有文档,但文档实际上并没有告诉我发生了什么,它只是告诉我如何使用指令。

regex mod-security pcre

11
推荐指数
1
解决办法
2万
查看次数


在 CentOS 上修复共享 PCRE 库

这不是关于 PCRE 的问题,而是关于更新共享库的问题。我正在运行的 CentOS 发行yum版只允许升级到 6.6 版或类似版本。

我正在安装一个需要 PCRE 8.0+ 版本的问题跟踪器。我无法卸载当前的 PCRE 6.6 版本,因为几乎所有内容都依赖于它,并且系统会崩溃。

因此,我从源代码编译并安装了 PCRE 8.12,但即使pcretest -C显示了新版本,在我的测试页面上调用 php_info() 也表明 6.6 库仍在加载。我找到了一个指向一个站点链接,链接建议如何将旧库替换为新库。

在这样做时,我认为有些事情不太对劲。一些命令正在报告问题:

/usr/bin/php: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能解决这个问题?我对共享/动态库不是很熟悉。我有以下文件:

[root@vps tracker]# find / -name libpcre.so* -exec ls -l '{}' \;
lrwxrwxrwx 2 root root 16 Jul 14 07:53 /lib64/libpcre.so.0 -> libpcre.so.0.0.1
lrwxrwxrwx 1 root root 16 …
Run Code Online (Sandbox Code Playgroud)

unix symbolic-link libraries pcre

6
推荐指数
1
解决办法
2万
查看次数

PECL 安装/phpize 错误

这是我的 PHP 设置

##################################################################
# setup PHP
##################################################################

# we use this to make inline CSS in newsletter
yum install php php-tidy php-xml php-xmlrpc php-gd -y

# if make is missing
yum install gcc automake autoconf libtool make -y

# configuring php pecl http
yum install zlib-devel curl-devel php-devel php-pear -y

# required by phpMyAdmin
yum install php-mcrypt php-mbstring php-bcmath pcre -y

pecl channel-update pecl.php.net
pecl upgrade

pecl install bbcode
pecl install pecl_http
pecl install apc
pecl install oauth

# …
Run Code Online (Sandbox Code Playgroud)

php pecl pcre

5
推荐指数
1
解决办法
3万
查看次数

Apache HTTPd 2.2 忽略 LocationMatch 正则表达式

我正在尝试创建一个反向代理,它匹配除 Apache 2.2 中的一个之外的每个 URL。它适用于 Apache 2.4 (Centos 7),但不适用于 Apache 2.2 (Centos 6.6) ...

# Do not modify this
<LocationMatch "^/my-website-2">
        ProxyPass http://X.X.X.X:PORT/my-website-2
        ProxyPassReverse http://X.X.X.X:PORT/my-website-2
        (...)
</LocationMatch>

# Match every URL except the one finishing with /redirect
<LocationMatch "^/my-website(?!/redirect)">
        ProxyPass http://X.X.X.X:PORT/my-website
        ProxyPassReverse http://X.X.X.X:PORT/my-website
        AuthType XXX
        RequestHeader set XXX YYY
        (...)
</LocationMatch>

# Do anothers directives with this URL only, finishing with /redirect
<Location "/my-website/redirect">
        AuthType XXX
        (...)
</Location>
Run Code Online (Sandbox Code Playgroud)

当我输入https://my-server.com/my-website因为正则表达式不匹配 ^/my-website时,我的服务器正在寻找 /var/www/html/my-website(不存在的)(?!/重定向)

我知道 Apache 2.2 不能理解每个负面 PCRE 正则表达式,但似乎存在一些技巧......请参阅:

proxy httpd pcre apache-2.2

5
推荐指数
1
解决办法
1167
查看次数

授予 PHP 分配可执行内存的权限

我在 iTop 安装期间收到此消息。如果你用谷歌搜索这个,它会出现在商业网站的内容之上。

警告:filter_var():JIT 内存分配失败,PCRE JIT 将被禁用。这可能是因为安全限制。要么授予 PHP 执行内存的权限,要么在 /var/www/html/itop/web/application/utils.php 第 338 行设置 pcre.jit=0。

“修复”包含在警告消息中,但我想更多地了解发生了什么。也许我希望 PHP 分配可执行内存。任何见解将不胜感激。

pcre php7

4
推荐指数
1
解决办法
7878
查看次数

后缀:pcre 的 postmap 错误

postfix-pcre在 debian linux 上使用。

当我运行 postmap /etc/postfix/smtp_header_checks.pcreand 时postmap pcre:/etc/postfix/smtp_header_checks.pcre,出现以下错误:

postmap: warning: smtp_header_checks.pcre, line 1: record is in "key: value" 
format; is this an alias file?
Run Code Online (Sandbox Code Playgroud)

怎么了?我有这个/etc/postfix/smtp_header_checks.pcre

# Remove sender's IP address information
/^Received: .*/ IGNORE
/^X-Originating-IP:/ IGNORE
Run Code Online (Sandbox Code Playgroud)

linux postfix pcre

2
推荐指数
1
解决办法
4375
查看次数

带通配符的 nginx 流图

我对正则表达式真的很不好。我正在尝试在 nginx 中执行此操作:

stream {

    map $ssl_preread_server_name $name {
        api.dom1.com dom1_backend;
        *.dom2.com dom2_backend;
    }

    upstream dom1_backend {
        server api.dom1.com:443;
    }

    upstream dom2_api_backend {
        server *.dom3.com:443;
    }

    server {
        listen 443;
        proxy_pass $name;
        ssl_preread on;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何让 dom2 工作?我只需要将通配符域映射回通配符域。

意味着任何 *.dom2.com 都会转到 *.dom3.com

nginx regex pcre

2
推荐指数
1
解决办法
3255
查看次数

标签 统计

pcre ×10

regex ×3

apache-2.2 ×2

mod-security ×2

nginx ×2

centos ×1

httpd ×1

libraries ×1

linux ×1

pecl ×1

php ×1

php7 ×1

postfix ×1

proxy ×1

symbolic-link ×1

unix ×1

yum ×1