Articles of PHP

几乎没有关于SSL的问题

我正在尝试开发一个sslchecker.com模拟器用于testing目的。 我想了解一些时刻: 在结果中,我们可以看到“解决”和“主机名”。 是“解决”一个域名,证书签名? 什么是“主机名”在这种情况下? 这不是一个forms的价值,因为我总是看到“不匹配”。 应该在那里? 我可以如何使用openssl的PHP函数或在terminal中使用纯openssl进行检测: 3.1“解决”(到它签署的域名) 3.2“hostname”(基于2个问题是什么) 3.3“供应商签署”(是或否)是 – 如果我们有“由…颁发”的值)? 3.4 PHP的openssl函数给我链没有最后的根证书,为什么? 我如何才能拿到根证书? 3.5如何使用SSL协议连接到链中的一个证书? 我应该使用什么域和端口,我怎么能检测到它,这有可能吗? 3.6我如何检查连锁证书的域名,并确认连锁证书对这个域名有效? 对不起,如果因为我英文不好或SSL理解不好而提出的问题不正确。 另外,我可以读什么? 也许你可以推荐一些video或简短的文章,而不是维基?

如何减lessApache-php的DOS攻击漏洞?

拒绝服务攻击 在互联网上托pipe一个网站时,拒绝服务攻击是一个常见的威胁。 虽然大多数安全漏洞可以通过避免危险的编码习惯/技术来防止,但DOS保护需要不同的方法。 懒惰的DOS攻击 具体而言,我并不担心networking上的复杂垃圾邮件发送者会使用昂贵的设备(可能优于我自己的设备)来接受付款。 我无法想象任何人都会为了让我的网站停下来而付出那么多的钱。 我更担心的是懒惰的攻击,这些攻击很可能来自聪明的青less年,他们试图在不知情的网站上testing他们的破坏力,特别是那些通过黑客马拉松和事件听说过我的网站和项目的人。 这些“懒惰的攻击”非常便宜,易于执行,并且可以采取简单的浏览器脚本或泛洪程序的forms,向我的站点服务器发送大量的请求。 一个强大的系统(像我的专用服务器)只能通过利用更强大的系统中的弱点,并利用它的能力来抵御自身,才能被弱系统(比如光源资源脚本)带走。 具体来说,我的意思是当同一个用户不断地向服务器发出几乎不需要的请求。 如果用于客户端资源的服务器资源的比例至less大于可用的服务器资源与客户端资源的比例,那么我的网站可能很容易被取消。 if (Server Resources : Client Resources > Server Power : Client Power) { ServerDown(); } 在Apache中确保请求返回策略 我不是问如何使我的Apache站点DOScertificate,而是如何通过locking一个客户端可以在一定时间内发送的请求数量,然后将其视为攻击者,从而减less对便宜,懒惰的DOS攻击的攻击。 这特别适用于php脚本和其他需要更多资源将内容转发给客户端的页面。 什么是最好的办法(MySQL禁止表,Apache设置,蜜jar等),以确保一个相对较小的网站对廉价的DOS攻击? 最初被问到堆栈交换

使用定制的Docker容器在Azure上的NameLookup问题

我在使用定制Docker容器和Linux上的Web App的Azure上进行名称parsing时遇到了问题。 在Azure中使用默认的resolv.conf文件时,使用curl和wget进行名称parsing需要4-10秒。 search reddog.microsoft.com nameserver 127.0.0.11 options timeout:1 attempts:5 ndots:0 当我将名称服务器更改为8.8.8.8时,所有工作正常。 如果我理解正确, Docker挂载主机的resolv.conf文件,并且应该使用Docker运行命令选项设置DNS设置。 不build议直接更改这些文件。 Docker如何pipe理容器内的DNSconfiguration的确切细节可以从一个Docker版本更改为下一个。 所以你不应该假定/ etc / hosts,/etc/resolv.conf这样的文件在容器中被pipe理,并且保持文件不变,而是使用下面的Docker选项。 但是,在Azure中设置泊坞窗运行参数似乎不可能。 这是我以前在SO这个主题上的post 。

Github如何知道哪个用户提交了?

我正在尝试为我的gitolite服务器写一个GUI。 我的计划是创build一个钩子,然后将git log写入数据库或文件。 然后一个PHP文件可以读取这个数据,并像Github上的networking一样显示它。 我现在的问题是如何知道哪个用户已经提交了? 因为如果他的git电子邮件不同,那么我的服务器数据库中的电子邮件我无法识别用户。 你对这个问题有什么build议吗? 有没有更好的方式来获取所有提交比git log ?

Linux内核和Apache 2.2性能问题在两个不同的Web服务器上

我有一个2负载均衡器后面的mod_php web服务器,这些操作系统是CentOS 6.x. 他们应该是相同的。 他们应该使用循环法收到相同的请求。 其中一个比另一个performance糟糕。 我认为这是因为某些原因收到更多的请求: 事实并非如此。 这些请求大概是同一个URL,并且几乎同时有相同数量的请求。 性能仍然糟糕。 那么我决定帮助服务器,而我find了解决scheme。 所以我重新configuration负载平衡器。 负载平衡器的configuration更改是将请求发送到服务器,并打开较less的连接。 在此之后,服务器开始比第二台服务器接收更less的请求,性能仍然比其他服务器差。 只是为了强调差异,此时请求分配约35至65%。 一般来说,关于相同的URL请求比率。 现在,我认为我们有两个服务器之间的其他用户软件水平差异。 事实并非如此。 我们自动pipe理configuration和代码。 PHP有相同的模块加载,Apache也。 代码没有区别。 硬件是一样的。 作为额外的信息,我们不会有粘滞的会议。 请求被随机定向到两个服务器。 我们也testing了这一点。 configuration更改后的差异是具有该问题的服务器接收的请求less得多。 服务器在处理请求或连接到其他组件(如数据库)时没有任何有意义的时间差异。 鉴于此背景检查当前的CPU图像。 带有问题的服务器: web1 image CPU性能通知RED表示系统CPU时间不是用户,apache是​​用户空间。 还请注意,这些图像是从更改后得到更less的请求到web1(有问题)。 在我们有严重的CPU和负载平均问题之前,那么这里是另一台服务器。 Web2镜像CPU性能 。 没有检测到IO,RAM或其他硬件问题。 这让我怀疑内核问题。 top似乎也是这样说的。 顶级Web1与Web2图像性能 然后我注意到内核因为某种原因加载了不同的模块。 因为我找不到其他的区别。 由于服务器应该是相同的,我实际上已经足够了。 BOSS希望能够在删除内核模块之前将其链接到实际问题。 我尝试了一些东西,包括perf,但没有pipe理。 Perf( perf record -F 99 -a -g — sleep 30 […]

在debian 9上用apache2安装PHP7.1时出错

你好我安装了debian的9安装的Apache。 然后安装php7.0与apt-get,但我需要安装php7.1,起初我做的 $ su $ apt-get purge php7.0 所以我从http://php.net/downloads.php下载了php 7.1.10并做出了这个 $ ./configure –with-mcrypt $ make $ make install 但phpinfo()得到的php7.0,所以我做 $ su $ apt-get purge php7.0 $ apt-get autoremove php7.0 并知道phpinfo()不工作。 我认为,现在的PHP没有安装。 然后从http://php.net/downloads.php下载php 7.1.11(今天新增)和里面 $ tar jxvf php-7.1.11.tar.bz2 $ apt-get install build-essential $ apt-get install libxml2-dev libmcrypt-dev libjpeg-dev $ cd php-7.1.11 $ ./configure –with-mcrypt –with-pdo-pgsql=/etc/postgresql/9.6/main –with-openssl=/usr/bin/openssl […]

PHP不上传文件

我似乎无法得到PHP来处理上传的文件。 我目前的代码如下所示: <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> <html> <body> <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit"> </form> <p>Sent file: <?php echo $_FILES['image']['name']; ?></p><br> <p>File size: <?php echo $_FILES['image']['size']; ?></p><br> <p>File type: <?php echo $_FILES['image']['type']; ?></p><br> <?php print_r($_FILES); ?> </body> </html> 我的php.ini文件: ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file […]

Azure内存峰值

我们正在Azure上托pipe一个网站作为应用程序服务,今天我们有一个意外的内存行为。 我们有大约200个并发用户(这对于我们的应用程序来说大约是3K个请求/分钟),并且运行正常,直到突然间内存使用达到峰值。 它高涨了一会儿,但很快又回到以前的价值。 这也导致我们的CPU在短时间内(几秒钟)达到97%,导致响应时间上升,并且还发送了一些HTTP-500响应。 我们正在运行一个S1实例,如果有必要,我们绝对准备扩大/缩小,但是我们仍然希望更多地了解这个峰值。 有没有人认识到这种行为? 我还可以补充说,我们正常的内存使用率在60-70%左右,这是高吗? 即使在没有用户的夜晚也不会下降。 附加信息:我们的DTU比例从25%上升到50%。 这可能是相关的。 如果一段时间内I / O密集的话,是否有一个function可以将整个数据库表加载到内存中?

HTTPS除了一个页面

我试图configuration我的Apache服务器承载一切在HTTPS除了一个页面,我需要我的脚本能够访问。 目前,我被提示绕过不可信的SSL证书,这是破坏我的自动化。 这是我当前的000-default.conf文件中的SSLconfiguration。 Redirect permanent "/" "https://<ip>/word.php/" 我已经尝试在000-default.conf文件中添加这行来重写规则,但它没有奏效。 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://<ip>/word.php [R,L] 我已经尝试了一切,似乎没有任何工作。 我没有.htaccess文件,所以请不要build议我修改。 谢谢您的帮助

PHP作为fast_cgiclosures没有日志

我在一个nginx代理的后面运行了php5,像Fast_CGI一样,在使用之后(一直在使用,而不是在空闲时),Fast_CGI服务器closures(不再显示在'ps -A'中。 在php.ini中,Log_Errors设置为On,Error_Log设置为/var/log/php.log,但是如果只查看php.log中的启动错误,则什么也不会意味着phpclosures。