标签: php

未受影响的服务器提供 SSL 时的 Heartbleed 漏洞?

*我想问一下在服务器上安装了易受攻击的 OpenSSL 版本,但该服务器不提供 SSL 服务的两种情况。

场景 1:我在负载均衡器上安装了一个 SSL 证书,负载均衡器后面是一个 IIS 服务器群。IIS 不受 Heartbleed 的影响,并且端口 443 在那里关闭。但是我们发现负载均衡器很脆弱。Heartbleed 的哪些方面会影响我们?

场景 2:在此场景中,负载均衡器不易受到攻击。同样,负载平衡器安装了证书。但是,在它后面是一个运行 PHP 的服务器群,安装并启用了一个易受攻击的 OpenSSL 版本——可能是因为另一个扩展需要它,或者有人不假思索地启用了它。这些服务器上的端口 443 也已关闭。Heartbleed 的哪些方面会影响我们?

根据我的理解,在场景 1 中,我们通过线路进出服务器的密钥和数据有被拦截的风险。但是,IIS 应用程序服务器内存的内容不会有暴露的风险。

同样,根据我的理解,这可能是错误的,在场景 2 中,没有风险。

有人可以验证或更正我的假设吗?

iis php farm heartbleed

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

无法在 CentOS 6 上安装 php-posix

我正在尝试在 CentOS 6 上安装 php-posix,但没有成功:

$ yum install php-posix
Run Code Online (Sandbox Code Playgroud)

得到以下错误:

Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nluug.nl
 * epel: nl.mirror.eurid.eu
 * extras: ftp.nluug.nl
 * updates: ftp.nluug.nl
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-process.x86_64 0:5.3.3-27.el6_5 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-27.el6_5 for package: php-process-5.3.3-27.el6_5.x86_64
--> Finished Dependency Resolution
Error: Package: php-process-5.3.3-27.el6_5.x86_64 (updates)
           Requires: php-common(x86-64) = 5.3.3-27.el6_5
           Installed: php-common-5.4.30-1.el6.remi.x86_64 (@remi)
               php-common(x86-64) = 5.4.30-1.el6.remi
           Available: php-common-5.3.3-26.el6.x86_64 (base)
               php-common(x86-64) …
Run Code Online (Sandbox Code Playgroud)

php centos posix

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

没有 apache/nginx/cgi 堆栈的 php 服务器

在许多语言中,您从头开始构建 Web 框架(即从 unix 套接字)并在抽象层上构建。如果我想用 OCaml 或 C 从头开始​​构建一个 web 框架,我首先构建一个侦听端口 80 的套接字服务器。

我突然想到 PHP - 就像任何其他高级语言一样 - 可能会以某种方式包装 unix 套接字。现在我知道情况是这样的,PHP 从来就不是这样设计的。但是,我不明白为什么它从未以这种方式使用过。按照同样的思路,PHP 解释器从未像 Python 解释器那样以这种方式使用。

例如,当我从头开始构建 Python Web 服务器并部署它时,我执行以下操作:在某个端口(比如 8000)上添加一个 unix 套接字,像 一样守护我的脚本python server.py 8000,并在端口 80 上设置 nginx 反向代理并转发到我的端口 8000 上的内部本地服务器。我从未见过用 PHP 完成的,即使它是可能的。

我承认,除了使用独立的解释器(即 Tornado、uwsgi 等)之外,您在 Python 中还有其他选择。然而,它是双向的。

我的问题是,PHP 语言、解释器或社区的哪些方面阻止了 PHP Web 框架从 unix 套接字调用从头开始构建、在本地端口上进行守护进程以及被反向代理而不是使用 cgi/ fastcgi 包装器?

php fastcgi cgi

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

哪个“try_files”nginx 指令最适合零日漏洞利用?

到目前为止,我一直在我的 nginx 配置文件的 php 位置使用以下内容

try_files $uri $uri/ /index.php?$query_string;
Run Code Online (Sandbox Code Playgroud)

但是,我刚刚在 Wordpress Codex 指南中看到,对于零日漏洞,应该使用以下内容:

try_files $uri =404;
Run Code Online (Sandbox Code Playgroud)

两者在安全性方面有什么区别?

security php nginx

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

Nginx 位置块 - 仅匹配实际文件

我有以下 nginx 配置:

server {
    listen 8080;

    root /site_root/web;
    index index.html;

    server_name www.mysite.com;

    location / {
        try_files $uri @rewriteapp;
    }

    location @rewriteapp {
        rewrite ^(.*)$ /app.php/$1 last;
    }

    # add headers to static files
    location ~* \.(?:ico|css|js|gif|jpe?g|png|svg|woff|ttf|eot)$ {
        expires 365d;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    location ~ \.php {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS $https;
        fastcgi_pass unix:/var/run/php-fpm-www.sock;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题 这是一个标准的 php 应用程序,带有前端控制器和一些静态资产(js/css 等)作为文件系统上的文件(为了参数,这些文件的位置是“/site_root/web/assets”)。

上述配置的目的是向这些静态文件添加“max-age”标头,以允许浏览器缓存它们。这适用于文件系统上存在的所有文件。但是我有一些动态生成的资产,需要通过 php …

php nginx static-content

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

如何在 CentOS 6 x86_64 上安装 php56

当我运行时yum install php php-devel php-mysql php-gd php-mbstring,它会安装 php5.3。

yum list installed *php*
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
Installed Packages
php.x86_64                       5.3.3-46.el6_6               @updates
php-cli.x86_64                   5.3.3-46.el6_6               @updates
php-common.x86_64                5.3.3-46.el6_6               @updates
php-devel.x86_64                 5.3.3-46.el6_6               @updates
php-gd.x86_64                    5.3.3-46.el6_6               @updates
php-mbstring.x86_64              5.3.3-46.el6_6               @updates
php-mysql.x86_64                 5.3.3-46.el6_6               @updates
php-pdo.x86_64                   5.3.3-46.el6_6               @updates
Run Code Online (Sandbox Code Playgroud)

我刚刚删除了它yum remove php php-cli php-common php-devel php-gd php-mbstring php-mysql php-pdo。

我试过yum install php56w php56w-devel php56w-mysql …

php centos6

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

安装 httpd24、php56 和 php70,因为 SCL 无法正常工作,出现错误“找不到文件”

让我们开始说我已经在 Remi 博客上阅读了这个、这个和这个,因为它与这些存储库相关的问题。博客条目根本没有帮助我,或者我在这里遗漏了一些东西,但我不确定是什么。我将在下面公开我遵循的步骤,让我们看看我做错了什么。我计划将 PHP 5.6.x 和 PHP 7.0 安装为 SCL(因为我需要在两者上测试一些应用程序,并且由于某些 Wordpress 开发,我需要保持 PHP 5.6.x 支持)并且我将通过 SetHandler 使用 Apache 2.4.x所以下面是步骤:

  1. 安装软件集合工具:

    yum install scl-utils
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为您的系统下载带有存储库的软件包(在本例中为 httpd24)

    wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装 repo 包:

    yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装集合:

    yum install httpd24
    
    Run Code Online (Sandbox Code Playgroud)
  5. 开始使用软件集合:

    scl enable httpd24 bash
    
    Run Code Online (Sandbox Code Playgroud)
  6. 启动 httpd24 服务(默认选项)

    service httpd24-httpd start
    
    Run Code Online (Sandbox Code Playgroud)
  7. 将 PHP56 安装为 SCL:

    yum install php56 php56-php-common php56-php-cli php56-php-fpm php56-php-gd php56-php-intl php56-php-mbstring php56-php-mcrypt php56-php-opcache php56-php-pdo php56-php-pear php56-php-pecl-apcu php56-php-imagick php56-php-pecl-xdebug php56-php-pgsql php56-php-xml php56-php-mysqlnd php56-php-pecl-jsonc php56-php-pecl-zip php56-php-process …
    Run Code Online (Sandbox Code Playgroud)

php php-fpm centos6 apache-2.4 scl

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

mysqldump(使用 PHP exec)不转储文件但没有错误

我不确定这是一个 SO 还是 SF 问题,但我认为这可能是最好的地方。如果不是,我道歉!

我正在通过 PHP exec 使用 mysqldump,但它似乎不起作用。我使用的代码是

<?php
exec('mysqldump -u DB_USER -pDB_PASS DB_NAME > /tmp/test.sql');
?>
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时,我在 error_log 上没有收到任何错误,但我没有在 /tmp 中得到转储。我不确定是什么原因造成的。我不确定它是否试图转储到 /tmp 相对于执行 PHP 文件的位置,这是我正在寻找的结果,还是转储到其他地方的 /tmp?还是我完全犯了另一个错误?

mysql php exec

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

会话文件每 2 秒创建一次。在 openshift Laravel PHP nginx haproxy 上运行

服务器启动时访问服务器的原因是什么?

我已经rhc tail在我的应用程序上运行以监控新日志。

这是我的日志 http://laravel.io/bin/Dez4o


当我开始使用应用程序时 rhc app-start

app-root/logs/php-fpm-error.log

[26-Jul-2016 21:53:00] NOTICE: [pool www] 'user' directive is ignored     
when FPM is not running as root
[26-Jul-2016 21:53:00] NOTICE: [pool www] 'group' directive is ignored
when FPM is not running as root
[26-Jul-2016 21:53:00] NOTICE: fpm is running, pid 33590
[26-Jul-2016 21:53:00] NOTICE: ready to handle connections
Run Code Online (Sandbox Code Playgroud)

app-root/logs/haproxy.log

[WARNING] 207/215259 (33493) : config : log format ignored for proxy 'stats' since it has no log address.
[WARNING] 207/215259 (33493) …
Run Code Online (Sandbox Code Playgroud)

php nginx haproxy php-fpm openshift-online-2

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

php 窗口在 windows 中比 linux 慢 4~5 倍

我有一个站点部署到 Windows Server 2012 和 ubuntu 14.04,并且存在显着的性能差异。代码库和数据库数据完全相同。

视窗环境

  1. AWS EC2 t2.medium 中的 Windows Server 2012(双核 4GB 内存)
  2. PHP 5.5 64 位 ts
  3. 阿帕奇 2.4.23

Linux

  1. AWS EC2 t2.medium 中的 Ubuntu 14.04(双核 4GB 内存)
  2. PHP 5.5 64 位 ts
  3. 阿帕奇 2.4

两个站点都启用了 OpCache。

执行时间(唯一的 PHP 执行时间,不包括所有网络流量)

  • 视窗:2.6-2.8s
  • Linux:200-400ms

在 Windows 中,我们注意到在单页加载时有一个几乎 100% 的 CPU 负载峰值和 3-4MB 的 IO 读取峰值。

我已经在 Stackoverflow 中遇到过各种关于 Windows 中 php 性能的帖子,但我们已经应用/测试了这些帖子中的建议,没有任何问题

任何意见,将不胜感激!

linux windows php performance

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