Articles of PHP

在哪里存储通过cron调用的自定义php脚本

我想将我的php脚本移出/ var / www,以便它们不能通过URL访问。 但是,在哪里存储这些最合乎逻辑的地方呢?

如何减less运行wordpress的EC2微型实例上的I / O

我已经使用免费层微型实例在Amazon EC2上运行了一个非常小的WordPress站点约2个月。 我已经得到了每月几美元的磁盘I / O津贴。 我研究了如何减less磁盘I / O,并做了一些修改,例如通过更改apache.conf来允许浏览器caching图像,最小化图像和插件等。 然后我将APC模块添加到PHP。 我预计这会减less很多I / O,但似乎没有什么区别。 APC状态(apc.php): http://oi41.tinypic.com/30t5gud.jpg vmstat在单个网页的加载过程中的输出: 在网页的加载过程中似乎有I / O正在进行。 我不明白为什么,因为PHP应该在APCcaching中,并且图像已经被caching在我的浏览器中。 我的目标是简单地减lessI / O,因此成本。 有什么我可以做到这一点? 例如,是APC安装不正确还是有一些其他技术来避免I / O? (PS:W3TC的WordPress插件没有为我工作,我可能没有正确安装它 – 它locking了我的网站,超载的CPU,并把网站下来。

下面的setuid程序是否存在安全风险?

我有以下程序在.c设置为setuid chmod只有读取/执行所有者并将其设置为不可变的,因为我将它的PHP脚本调用。 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main(int argc, char *argv[] ) { setuid( 0 ); execv( "/var/tools/control.php", argv ); return 0; } 这本身就是一个安全风险吗? 是否有可能通过argv或其他我不曾想到的东西来推送其他命令? 林没有问只是这个代理程序的PHP脚本。

阻止无效的HTTP请求到PHP应用程序

几年来,我第一次负责帮助PHP Web应用程序的服务器pipe理(使用Apache进行服务)。 我们看到了一些无效url的请求,我认为这些url是恶意软件/漏洞利用相关的探针。 像 r/www/cache/static/home/img/logos/nuomi_ade5465d.png cgi-bin/test.sh cgi-sys/entropysearch.cgi 等等 我想阻止这些要求,既要坚持不良的演员,更重要的是要清理我的日志。 为此,我有几个问题 一般来说,阻止IP地址工作? 我知道“互联网上的IP地址==唯一设备”已经很长时间了,但是我想知道这些探测器是否通常来自于那些对我来说安全的networking, 如果我不能阻止IP地址,有没有人维护一个坏的演员通常探测的URL列表,所以我可以通过URL阻止? Re:#2 – 如果我要在服务器级别处理这个阻塞,哪个apache模块适合这种事情? ( MOD_REWRITE , MOD_SECURITY ) 有没有更好的方法来阻止除IP或URL之外的这些请求? 此外,该系统托pipe在EC2 – 亚马逊提供这种事情的任何帮助?

你如何防止mod_rewrite解码path中的string?

我正在尝试使用mod_rewrite创build一个restful API。 我有规则: RewriteRule v2/(.*)$ v1/index.php?request=$1 [QSA,NC,L] 然而,path可能包含base64编码的string(即可以有+或/),它们在PHP到达之前被解码。 例如,如果我去 /v2/cards/9VwQLli%2Bf0ogFl19AVRFLuztbp8cP0rYCgXBu3H9%2BDc%3DBe PHP获取$_REQUEST['request'] as cards/9VwQLli f0ogFl19AVRFLuztbp8cP0rYCgXBu3H9 Dc=Be' 。 而更糟的是,如果我在那里添加一个斜线(例如9VwQLli%2Bf0ogFl19AVRFLuztbp8c%2FP0rYCgXBu3H9%2BDc%3DBe – %2F是斜杠),我得到一个404。 我怎样才能防止这种情况发生? 注意:我尝试了B和NE标志,但没有任何效果。 我想作为一个黑客,我可以只将所有+字符转换为_和所有/转换,或者甚至可能是双重url编码,但我想知道是否有更好的方法。

你如何确保“画廊”照片库?

是否有任何特殊的步骤,应该采取保护画廊 ? 具体来说,我目前已经安装了Fedora RPM gallery2-2.3-1.fc8 。 我在目标模式下启用了selinux ,这是一个很好的保护层。 我find了Gallery 安全文档 。 我只是想知道还有什么我应该看看,以确保这是安全的,防止外部攻击。 我对本地攻击的担心远不如以前。 我只是想确保公开的互联网不会让我的服务器被黑客攻击。

如何在通过RPM安装时在PHP中启用GD?

我们正在开发一个没有GD的PHP运行的客户端服务器。 我们希望在该机器上启用PHP的PHP支持。 启用GD最直接的方法是什么? 有没有办法通过RPM做到这一点? 谢谢! 更新: 目前运行: RedHat Enterprise Linux Server版本5.3使用RPM

如何保护数据库服务器?

目前我的数据库用户和密码很容易猜到,例如。 数据库用户:dbadmin 数据库密码:super + companyname 什么和如何生成安全的数据库密码? 使用md5或sha1? 我需要注意什么来保护我的数据库? 我正在使用PHP,谢谢

有时Apache会输出PHP源代码

我的Apache服务器有一个很奇怪的问题。 我有两个文件包含<?php phpinfo(); ?> <?php phpinfo(); ?> 。 它们都放在同一台服务器上,但是在不同的虚拟主机上。 虚拟主机看起来像这样: 第一: <VirtualHost *:80> DocumentRoot /var/www/[…]/public_html ServerName something <Directory /> AllowOverride All </Directory> </VirtualHost> 第二个: <VirtualHost *:80> DocumentRoot /var/www/[…]/public_html ServerName something ServerAlias something <Directory /> AllowOverride All </Directory> </VirtualHost> 如你所见,他们几乎是平等的。 但是,如果我指向第二个虚拟主机上的phpinfo.php,源将被发送到客户端。 在第一个phpinfo被执行并显示给用户成功。 什么会导致这种差异?

用于带有GUI的Web服务器的轻量级Linux发行版

我是一个PHP程序员,他希望通过FTP停止在服务器上编辑文件(请不要嘲笑我),所以我正在考虑在本地虚拟机中复制实时服务器环境,以便我可以编辑更多文件快速并使用一个PHPdebugging器。 我的要求是: 轻量级 – 它将运行在虚拟机和我的电脑不是很强大 小硬盘空间也是有限的; 想要保持在每个虚拟机1 GB以下 GUI – 我以前没有真正使用过Linux,所以我更愿意有一个GUI(即使作为一个选项) 开箱即用 – 我知道pipe理一台服务器并不是一件容易的事情,但是我不能花足够的时间去做,所以如果我不需要安装和configurationApache,PHP,也可能sendmail我自己。 我会欣赏build议或任何其他提示。 谢谢!