Articles of PHP

Nextcloud:拒绝访问PHP文件

我想在PHP 7.0的nginxnetworking服务器上安装Nextcloud,由于某些原因,它不能按预期工作。 Nextcloud错误日志说明如下: “访问脚本”/var/www/cloud/index.php/“已被拒绝(请参阅security.limit_extensions)” 我已经尝试在/etc/php/7.0/fpm/pool.d/www.conf设置security.limit_extensions = .php ,但是根本没有帮助。 我只能通过在php.ini启用cgi.fix_pathinfo来访问Nextcloud,但是我希望它被禁用,因为它可以用来在服务器上执行恶意代码(如果我没有弄错的话)。

Apache 2.4安全并过滤掉无效的上传文件(扩展名/头文件不匹配)

我在维护Drupal站点时遇到了一些问题。 客户不会更新不安全的模块,他们还会开发自定义的不安全模块,导致黑客上传php脚本,从favicon.ico文件运行一些eval恶意代码,或从/ sites / default /文件中上传任何文件夹。 我不能禁用eval,因为Drupal需要它的几个东西,如访问pipe理网站和其他东西(我已经尽力使用Suhosin禁用它,但最后我只是把它放回去)。 所以,我希望能够在Apache级别上过滤出无效的上传文件,如果这样的话是可能的:我的意思是,testing上传的文件的魔头/签名和文件,如果不符合标准则抛出错误。 我想到了只是select: mod_mime和AddInputFilter ,但我还没有find一种方法来实现这样的filter。 告诉所有开发者改变所有已经写好的代码的选项被丢弃,不幸的是。 有任何想法吗? PS:我主要关心的是那些貌似天真的文件,比如favicon.ico文件,头部像<php? eval('…') <php? eval('…') 。 但是我需要让人们能够上传ico文件。 这是危险的内容,并且可以从任何能够访问上传文件的文件执行,因此执行上下文可能是“安全的”path。 评估是危险的,但需要:(

Web服务器没有响应 – 不知道有什么问题

Server version: Apache/2.4.29 (Ubuntu) Linux pinf-vps 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64 PHP Version 7.1.10-1+ubuntu16.04.1+deb.sury.org+1 (php-fpm) Ubuntu 16.04.1 8GB RAM, 4 cores (Azure A4_V2) networking(24小时): https : //cdn.pbrd.co/images/GQsi2j6.png CPU(24小时): https : //cdn.pbrd.co/images/GQsiB6z.png Apache有时候没有反应。 我在那里举办了几个网站,但他们没有得到超大stream量。 我以为这可能是由MySQL引起的,但有时会影响到不使用它的网站。 我不知道是什么原因导致了这个问题。 networking会挂起5到120秒,这太长了。 有时20分钟没有响应。 有时只有基于MySQL的网站(与Wordpress,顺便说一句:相同的WP页面在其他主机上运行速度很快) ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, […]

允许Apache以其他用户的身份运行php shell_exec

我用用户raimonds执行.sh文件有问题。 我可以通过terminal来完成,但不能通过php shell_exec()来完成。 我有这个PHP代码行是执行带有参数的.sh文件。 shell_exec("/Users/raimonds/Desktop/scp_upload.sh yes password"); scp_upload.sh正在用SCP上传文件到远程机器上: echo $1 | sshpass -p $2 scp -o StrictHostKeyChecking=no /Users/raimonds/Desktop/picture_to_send.jpeg [email protected]:/Users/raimonds/Desktop/picture_to_send.jpeg 当我编辑httpd.conf文件时,php脚本工作。 更改用户_www到用户raimonds。 但是,这显然不是最好的办法。 试图在/ etc / sudoers中添加行是如何在其他地方提出的。 raimonds ALL=(ALL) NOPASSWD: /Users/raimonds/Desktop/scp_upload.sh 但没有运气。 我可以写更多关于这个问题的东西,但是这里没有足够的空间。 我希望你明白我在问什么。 有什么build议么? 谢谢。

浏览器跨域请求被阻止的错误

我正在使用icomoon.io的字体图标 我正在寻找解决scheme,但无法解决这个错误。 所有的图标看起来很丑。 我不知道我在做什么错,错误显示所有的时间和图标不应该像它应该是。 icon.css @font-face { font-family: 'icomoon'; src: url('http://static.domain.com/css/fonts/icomoon.eot?bla8ag'); src: url('http://static.domain.com/css/fonts/icomoon.eot?bla8ag#iefix') format('embedded-opentype'), url('http://static.domain.com/css/fonts/icomoon.ttf?bla8ag') format('truetype'), url('http://static.domain.com/css/fonts/icomoon.woff?bla8ag') format('woff'), url('http://static.domain.com/css/fonts/icomoon.svg?bla8ag#icomoon') format('svg'); font-weight: normal; font-style: normal; } header.php文件 header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); htaccess的 AddType application/vnd.ms-fontobject .eot AddType application/x-font-opentype .otf AddType image/svg+xml .svg AddType application/x-font-ttf .ttf AddType application/font-woff .woff AddType application/font-woff2 .woff2 <FilesMatch "\.(ttf|otf|eot|woff|svg|css)$"> <IfModule […]

停止通配符SSLredirect子域到主域

我使用通配符SSL获得了一个网站example.com 。 所以每当我尝试abc.example.com子域abc.example.com时,都会将其redirect到example.com 。 我怎样才能停止redirect? 我看到在.htaccess文件中添加一个条件可以解决这个问题,但是我发现所有的答案都有不同的条件,如果我改变了错误的条件,将会弄乱整个网站。 这是来自子域的.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule .* – [E=CANONICAL:http://abc.example.com%{REQUEST_URI},NE] RewriteCond %{HTTPS} =on RewriteRule .* – [E=CANONICAL:https://abc.example.com%{REQUEST_URI},NE] </IfModule> 那么我应该添加什么条件来阻止redirect呢? 这两个网站都使用WordPress,如果有帮助,我发现这个代码# BEGIN W3TC CDN 。

使用symfony会话在Google App Engine中丢失了Autentification /令牌

我正在开发一个Web应用程序,其中有一个用户必须通过Google People API(Google帐户)进行身份validation的身份validation系统。 我在本地使用图书馆hwi / WIOAuthBundle进行了重新定向到Google的开发,并通过Symfony 3进行了所有的authentication。 问题在于,通过Google云灵活环境中的AppEngine制作的网页,Google身份validation在页面和页面之间丢失。 也就是说,我正确login,我进入主页面,当我更改选项卡,我不再login,也许如果我刷新页面,我将再次login。 我怀疑页面和页面之间的令牌丢失了。 我真的不知道会发生什么事情,因为在我的本地环境中,它可以正常工作,并且在任何时候都不会丢失会话(除非手动closures会话),因此应该是环境中的问题。 非常感谢你提前。

nginxconfiguration – redirect,如果文件存在

我正在将一个由别人写的php应用程序从apache转换到nginx。 开发人员在.htaccess中有这个 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^(.*)$ api.php?rquest=$1 [QSA,NC,L] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ api.php [QSA,NC,L] RewriteCond %{REQUEST_FILENAME} -s RewriteRule ^(.*)$ api.php [QSA,NC,L] </IfModule> 我简单地读了这个 “如果文件/目录不存在,请将请求重写为api.php?rquest = $ uri” “如果文件/目录确实存在,请将该请求重写为api.php” 我试图在nginx中复制这个,但遇到问题。 我创build了一个位置指令 location / { # if the file or folder doesn't exist add it as arguments to […]

显示普通的PHP代码

我正在使用Amazon EC2,CentOS 7 x64_86,1GB内存。 (1)运行命令 php -v 结果 PHP 7.0.24 (cli) (built: Sep 30 2017 10:10:28) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies (2)运行命令 httpd -v 结果 Server version: Apache/2.4.6 (CentOS) Server built: Oct 19 2017 20:39:16 (3)运行命令 vi /etc/httpd/conf.d/welcome.conf 结果 # # This configuration […]

如果我不手动提供索引文件,PHP不会执行

我知道标题可能有点混乱,所以让我解释一下。 我有Apache2与PHP7.0和Mysql,工作完全正常,我重复我的虚拟机,并试图安装一个SSL证书,让我们说,没有顺利,我不得不重新安装apache2和php7.0。 现在,如果我去我的网站是这样的: http://example.com/ : http://example.com/然后,PHP不执行,但是,如果我访问http://example.com/index.php ,那么它工作得很好。 此外,我只是指出,我说PHP不执行,页面本身(index.php的HTML)显示没有问题。 另外,我目前在Ubuntu 16上。 任何人有任何想法? 谢谢! 我似乎已经解决了这个问题: <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> “.php $”不在引号内,将它们放在引号内似乎已经修复了。