灌溉梦想,记录脚步

php安全设置

关闭危险函数,在php.ini里设置
(1) 关闭注册全局变量
在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全 局变量选项关闭:register_globals = Off
当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,那么就要用$_GET['var']来进行获取,这个php程序员要注意。
(2) 打开magic_quotes_gpc来防止SQL注入,SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,所以一定要小心。php.ini中有一个设置:magic_quotes_gpc = Off这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 \'等,这对防止sql注射有重大作用。所以推荐设置为:magic_quotes_gpc = On
(3) 错误信息控制
一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以 一般服务器建议禁止错误提示:display_errors = Off 如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:error_reporting = E_WARNING & E_ERROR 当然,最好还是关闭错误提示。
(4) 错误日志
建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:
log_errors = On
同时也要设置错误日志存放的目录如:
error_log = D:/logs/php_error.log
设置完之后重启IIS生效

删除不安全组件

WScript.Shell 、Shell.application 这两个组件一般一些ASP木马或一些恶意程序都会使用到。

方案一:

regsvr32 /u wshom.ocx 卸载WScript.Shell 组件
regsvr32 /u shell32.dll 卸载Shell.application 组件

如果按照上面讲到的设置,可不必删除这两个文件

方案二:

删除注册表 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8} 对应 WScript.Shell
删除注册表 HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000} 对应 Shell.application

本地安全策略

开始 > 程序 > 管理工具 > 本地安全策略
账户策略 > 密码策略 > 密码最短使用期限 改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步]
账户策略 > 账户锁定策略 >账户锁定阈值 5 次 账户锁定时间 10分钟 [个人推荐配置]
本地策略 > 审核策略 >
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
本地策略 > 安全选项 > 清除虚拟内存页面文件 更改为"已启用"

> 不显示上次的用户名 更改为"已启用"
> 不需要按CTRL+ALT+DEL 更改为"已启用"
> 不允许 SAM 账户的匿名枚举 更改为"已启用"
> 不允许 SAM 账户和共享的匿名枚举 更改为"已启用"
> 重命名来宾账户 更改成一个复杂的账户名
> 重命名系统管理员账号 更改一个自己用的账号 [同时可建立一个无用户组的Administrat账户]

关闭自动播放功能

自动播放功能不仅对光驱起作用,而且对其它驱动器也起作用,这样很容易被黑客利用来执行黑客程序。
打开组策略编辑器,依次展开“计算机配置→管理模板→系统”,在右侧窗口中找到“关闭自动播放”选项并双击,在打开的对话框中选择“已启用”,然后在“关闭自动播放”后面的下拉菜单中选择“所有驱动器”,按“确定”即可生效。

删除默认共享

单击“开始→运行”,输入“gpedit.msc”后回车,打开组策略编辑器。依次展开“用户配置→Windows 设置→脚本(登录/注销)”,双击登录项,然后添加“delshare.bat”(参数不需要添加),从而删除Windows 2003默认的共享。
接下来再禁用IPC连接:打开注册表编辑器,依次展开[HKEY_
LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa ]分支,在右侧窗口中找到
“restrictanonymous”子键,将其值改为“1”即可。

NTFS系统权限设置

在分区时使用NTFS格式。
在使用之前将每个硬盘根加上 Administrators 用户为全部权限(可选加入SYSTEM用户)
删除其它用户,进入系统盘:权限如下
C:\WINDOWS Administrators SYSTEM用户全部权限 Users 用户默认权限不作修改
其它目录删除Everyone用户,切记C:\Documents and Settings下All Users\Default User目录及其子目录
如C:\Documents and Settings\All Users\Application Data 目录默认配置保留了Everyone用户权限
C:\WINDOWS 目录下面的权限也得注意,如 C:\WINDOWS\PCHealth、C:\windows\Installer也是保留了Everyone权限.
删除C:\WINDOWS\Web\printers目录,此目录的存在会造成IIS里加入一个.printers的扩展名,可溢出攻击
默认IIS错误页面已基本上没多少人使用了。建议删除C:\WINDOWS\Help\iisHelp目录
删除C:\WINDOWS\system32\inetsrv\iisadmpwd,此目录为管理IIS密码之用,如一些因密码不同步造成500 错误的时候使用 OWA 或 Iisadmpwd 修改同步密码,但在这里可以删掉,下面讲到的设置将会杜绝因系统设置造成的密码不同步问题。

用户口令设置

首先,重命名adminstrator.
其次,给重命名过的administratorde用户名设置一个键的密码,在很大程度上可以避免口令攻击。密码设置的字符长度应当在8个以上,最好是字母、数字、特殊字符的组合,如“psp53,@pq”“skdfksadf10@”等,可以有效地防止暴力破解。最好不要用自己的生日、手机号码、电话号码等做口令。
最后,禁用guest用户,并新建一个administrator用户,权限设置最低,并加超强密码