王新阳

wangxinyang

服务器安全笔记

请输入查看密码:

HTTP 错误 413.1 - Request Entity Too Large 未显示页面,因为请求实体过大

上传文件太大。解决方法,在网站主目录下新建web.config,并添加如下内容(最大2GB=2147483648):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
        <requestFiltering>
          <requestLimits maxAllowedContentLength="2147483648" />
        </requestFiltering>
      </security>
    </system.webServer>
</configuration>

如果是PHP,还要修改php.ini:

upload_max_filesize = 2048M
post_max_size = 2048M

 

SSL证书安装视频教程

阿里云视频教程:https://help.aliyun.com/video_list/54214.html

IIS
https://help.aliyun.com/video_detail/54215.html
https://cloud.video.taobao.com/play/u/2884690646/p/1/e/6/t/1/216811758772.mp4
下载数字证书中的pfx和txt文件》开始》运行》mmc》文件》添加/删除管理单元》可用的管理单元:证书》添加》计算机账户》本地计算机》完成》控制台根节点》证书》个人》右键》所有任务》导入》导入下载的pfx格式数字证书》输入证书密码(pfx-password.txt中的内容),选中"标志此密钥为可导出的密钥"和"包括所有扩展属性"》根据证书类型,自动选择证书存储》导入完成》个人-证书中查看是否已导入》中间证书颁发机构-证书中查看是否已导入》打开IIS》在根节点的"服务器证书"中可看到导入的证书》网站》绑定域名》类型https,端口443,输入主机名,选中”需要服务器名称指示“,选择SSL证书》确定!

IIS绑定域名最后一步,如果不选中”需要服务器名称指示“,以后再给同一主机上其他网站绑定数字证书时,可能会出现”至少一个其他网站在使用同一https绑定……“的提示,如果继续执行,会导致前面绑定数字证书的网站无法访问。

Nginx
https://help.aliyun.com/video_detail/54216.html
https://cloud.video.taobao.com/play/u/2884690646/p/1/e/6/t/1/216768529401.mp4

Tomcat
https://help.aliyun.com/video_detail/54217.html
https://cloud.video.taobao.com/play/u/2884690646/p/1/e/6/t/1/216721068939.mp4

百度经验:https://jingyan.baidu.com/article/455a9950a95aa3a1662778da.html

发生未知 FastCGI 错误 ,错误代码为0x8007010b

给PHP目录添加USER的读取和执行权限即可
如果php临时目录位于PHP安装目录,还要加上修改权限


发生未知 FastCGI 错误 ,错误代码为0x8007010b,最可能的原因: 

IIS 收到了请求;但在处理请求过程中出现内部错误。此错误的根本原因取决于处理该请求的是哪一个模块以及出现此错误时工作进程中出现了何种情况。 
IIS 无法访问网站或应用程序的 web.config 文件。如果 NTFS 权限设置不正确,便会出现这种情况。 
IIS 无法处理网站或应用程序的配置。 
已经过身份验证的用户没有使用此 DLL 的权限。 
该请求将被映射到托管处理程序,但不会安装 .NET 可扩展功能。 
 
可尝试的操作: 
确保 web.config 文件的 NTFS 权限正确,并允许访问 Web 服务器的计算机帐户。 
检查事件日志中是否记录了任何附加信息。 
确认 DLL 的权限。 
如果请求被映射到托管处理程序,则安装 .NET 可扩展功能。 
创建跟踪规则以跟踪此 HTTP 状态代码的失败的请求。有关为失败的请求创建跟踪规则的详细信息,请单击此处。 
 
详细错误信息: 
模块       FastCgiModule 
通知       ExecuteRequestHandler 
处理程序       PHP 
错误代码       0x8007010b 
请求的 URL        
物理路径       C:\inetpub\wwwroot\abc\index.php 
登录方法       匿名 
登录用户       匿名 

IIS隐藏server头信息

隐藏 X-Powered-By: PHP/7.2.28

方法一:<?php header('X-Powered-By: abc'); ?>
方法二:php.ini expose_php = off

隐藏 server: Microsoft-IIS/10.0

方法一:如果安装了 URL Rewrite 组件,可以IIS控制台 》 网站 》 URL Rewrite 》添加规则


方法二:首先下载 UrlScan,然后直接安装。安装以后进入IIS管理,功能视图里ISAPI筛选器里应有UrlScan这一行。
全局配置文件 C:\Windows\System32\inetsrv\urlscan\UrlScan.ini
日志 C:\Windows\System32\inetsrv\urlscan\logs
RemoveServerHeader=0	; 改成1以后不显示Server
AlternateServerName=	;如果RemoveServerHeader=0可以自己定义

遇到的问题:
1、安装后如果出现带目录带"."的文件404,需要开启 AllowDotInPath
2、如果文件名中包含非ASCII字符(比如中文),需要开启 AllowHighBitCharacters
3、如果目录结尾为 .bat/.cmd/.com/.exe等(比如目录名为 abc.com),需要结合 UseAllowExtensions 屏蔽 [DenyExtensions] 中的 .com
以上均为全局修改,可以可以对某个网站单独设置,请参考:
https://www.cnblogs.com/ttzhang/archive/2010/04/27/RunPhpOnIIS7viaFastCGI.html

关于AllowHighBitCharacters的配置,UrlScan.ini中配置的规则是整个机器级别的,IIS7.0上的所有网站都适用。根据IIS官网的说明,还可以在网站级别配置。在IIS管理器中,你可以在左侧选择指定的网站后,在中间的功能区域选择"Request Filtering",双击该功能,在右侧的操作区域中点击"Edit Feature Settings"后,选中或者取消"allow high-bit characters"项即可。(可引申此方法进行其他设置)


配置参考:
https://www.cnblogs.com/xuanhun/p/3611583.html
https://blog.csdn.net/qq_25600055/article/details/78188169


URLScan配置文件:C:\Windows\System32\inetsrv\urlscan\UrlScan.ini 
配置文件详解: 
UseAllowVerbs=1 
; 允许的请求的HTTP类型; 
; 如果设置为 1,则[AllowVerbs]生效; 
; 如果设置为 0,则[AllowVerbs]生效。 
UseAllowExtensions=0 
; 允许请求的后缀类型; 
; 如果设置为 0,则[DenyExtensions]生效; 
; 如果设置为 1,则[AllowExtensions]生效。 
NormalizeUrlBeforeScan=1 
; 执行前标准化URL。 
VerifyNormalization=1 
; 双重标准化URL。 
AllowHighBitCharacters=1 
; 如果设置为 1,将允许URL中存在所有字节; 
; 如果设置为 0,含有非ASCII字符的URL将拒绝(如UTF8或者MBCS)。 
AllowDotInPath=0 
; 如果设置为0,则URLScan 拒绝所有包含多个句点 (.) 的请求。 
RemoveServerHeader=0 
;设置为1可隐藏服务器信息。 
AlternateServerName= 
; 如果将 RemoveServerHeader设为0,此可自定义服务器关信息。 
; 如果将 RemoveServerHeader设为1,则此选项将被忽略。 
EnableLogging=1 
; 开启日志记录 
PerProcessLogging=0 
; 如果设置为0,为每个进程创建日志文件。 
PerDayLogging=1 
; 如果设置为 1,则URLScan每天创建一个新的日志文件。 
AllowLateScanning=0 
; 如果设置为 0,则 URLScan 作为高优先级筛选器运行。 
UseFastPathReject=0 
; 如果设置为 1,则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。 
; 如果设置为 0,则 URLScan 使用 RejectResponseUrl 设置来返回请求。 
RejectResponseUrl= 
; 设置用于返回的Url路径

参考:

https://jingyan.baidu.com/article/6d704a1379629a28db51ca37.html

https://blog.51cto.com/as007012/1927552

下载:

https://download.csdn.net/download/meiren123_/5233411

https://www.iis.net/search?searchterm=urlscan

https://docs.microsoft.com/en-us/iis/extensions/working-with-urlscan/urlscan-3-reference

安装服务器安全狗后PHP 500错误

FastCGI ErrorThe FastCGI Handler was unable to process the request.
Error Details:

Error Number: 5 (0x80070005).
Error Description:
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

两种解决办法:
1、服务器安全狗》系统防火墙》关闭“进程行为控制”
2、服务器安全狗》系统防火墙》防护设置》进程行为控制》添加PHP进程并取消“阻止”选项。
C:\Program Files\PHP\php-cgi.exe
C:\Program Files\PHP\php.exe

IIS php-cgi.exe - FastCGI 进程意外退出

2022-11-12更新

windows缺少某个系统文件,找到php安装目录,双击php.exe/php-cgi.exe,提示“由于找不到 VCRUNTIME140.dll,无法继续执行代码。重新安装程序可能会解决此问题。”

问题找到,下载或从其他电脑复制相应文件,32位系统复制到C:\Windows\System32目录下,64位系统请将文件复制到C:\Windows\SysWOW64目录。


2017-08-28更新

可能原因一:

遇到这个情况是因为php执行程序是基于VC++ 11运行库开发运行的,而你的电脑上没有安装vc++ 11。那什么是vc++ 11版本呢?

它就是Microsoft Visual C++ Redistributable 2012或2013运行库,要解决这个问题,按照下面的地址下载安装对应的版本就可以了:

32位 Microsoft Visual C++ Redistributable 2012下载:http://download.microsoft.com/download/9/C/D/9CD480DC-0301-41B0-AAAB-FE9AC1F60237/VSU4/vcredist_x86.exe

64位 Microsoft Visual C++ Redistributable 2012下载:http://download.microsoft.com/download/9/C/D/9CD480DC-0301-41B0-AAAB-FE9AC1F60237/VSU4/vcredist_x64.exe

参考:https://www.itsvse.com/thread-3867-1-1.html

可能原因二:

1,应用程序池"启用32位应用程序改成true
2,进程模型-标识,改成LocalSystem

参考:https://www.jianshu.com/p/5e7d2d260aae


2016-02-18更新

HTTP 错误 500.0 - Internal Server Error
C:\PHP\php-cgi.exe - FastCGI 进程意外退出

网站正常运行中突然出现上面的错误,百度n多方法都没解决,重装php都不行。
DOS中php安装目录下 php -v 一切正常
IIS运行phpinfo()正常
由此判断应该是php程序修改中出错,对最后的修改逐行检查,最终发现原来是对数组的调用没有使用[ ]而是用了圆括号(),改之,一切正常!

Fatal error: Can't use function return value in write context in F:\...\config_model.php on line 73
正常情况这种错误应该是上面的提示,这次不知道怎么会这样,总之解决了就好。

WIN10-WEB相关内容备份路径

关键内容备份路径

iis
C:\Windows\System32\inetsrv\config\applicationHost.config
仅文件中的 <sites> 部分

sqlyog
C:\Documents and Settings\Administrator\Application Data\SQLyog\sqlyog.ini
C:\Users\Administrator\AppData\Roaming\SQLyog

mysql
C:\ProgramData\MySQL\MySQL Server 5.5\data

leapftp
C:\Users\Administrator\Local Settings\VirtualStore\Program Files (x86)\LeapFTP_v3.1\users\default
config.xml  sites.dat

eclipse
C:\Documents and Settings\Administrator\workspace\.metadata

远程桌面连接记录所在注册表项:
计算机\HKEY_USERS\S-1-5-21-3819701229-2991288751-3115585910-500\Software\Microsoft\Terminal Server Client
计算机\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
计算机\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers

PHP:Fatal error: Class 'COM' not found in … 的处理办法

一般执行3、4两条即可

1、首先在windows的“服务”里面检查COM+服务是否已经启动。如果未启动,请启动它。

大概是该服务:Windows Management Instrumentation

2、检查php目录ext文件夹下面php_com_dotnet.dll是否存在。(顺便说一下,ext通常作为php程序的扩展目录,在安装php的时候一般已经设置好。否则就应该不仅仅报主题所说的错咯。)

3、如果没问题,在php.ini里面加入以下语句:
[PHP_COM_DOTNET]
extension=php_com_dotnet.dll

4、php.ini中设置
com.allow_dcom = true

5.PHP版本
PHP 5.4.5以前的版本,只需要在php.ini中把com.allow_dcom = true打开就可以了,但是5.4.5版本以后,PHP把com/dotnet 模块集成到了一个单独的扩展中,所以需要在php.ini中加一行扩展extension=php_com_dotnet.dll,是加一行,不是打开,默认配置文件中没有这一行的,然后重启IIS或Apache,再次运行就正常了!

特殊问题:使用pathinfo时php网站总是显示首页

WIN10 IIS10  CodeIgniter框架开发个网站,本来好好的,换电脑后不管访问哪个页面,都指向首页,折腾一下午才找到原因:不支持pathinfo。

IIS“处理程序映射”中添加php支持时,要选择“添加模块映射“,而不是”添加脚本映射“。


2024-11-23 星期六 农历十月二十三