Web 环境安全 优化建议例(web优化的几个方面)
nanshan 2024-10-26 11:13 7 浏览 0 评论
Web 环境安全包含常见易出现安全问题的 Web 支撑服务组件,典型的如 PHP、Apache、Tomcat、Nginx、IIS、MySQL 、Redis、JBoss、Jetty、vsFTPd。
必备要求
- 建议从官方下载稳定版组件进行部署安装,注意不要下载和使用 beta 版本。
- Web 服务组件必须以普通账户权限运行。
- 禁止 HTTP 目录索引,外部用户可直接访问 Index/ 等目录。
- 不允许使用弱密码,需使用随机字符串作为初始默认密码。
- 合理配置目录访问权限,禁止未授权的目录访问行为,如 .git/.svn 等目录 。
- 默认关闭组件或程序调试模式,避免敏感信息泄露。
优化建议
PHP 安全优化建议
控制脚本访问权限
PHP 默认配置允许 PHP 脚本程序访问服务器上的任意文件,为避免 PHP 脚本访问不该访问的文件,从一定程度上限制了 PHP 木马的危害,需设置 PHP 只能访问网站目录或者其他必须可访问的目录。
/usr/local/apache2/web/为网站根目录,打开php.ini,安全加固配置方式如下:
open_basedir = /usr/local/apache2/web/
需要多个目录时,以冒号隔开如:
open_basedir = /usr/local/apache2/web/:/tmp/:/data/adc/
隐藏 PHP 版
攻击者在信息收集时候无法判断程序版本,增加防御系数。打开php.ini 安全加固配置方式如下,隐藏版本设置:
expose_php =off
off
修改 PHP 配置文件php.ini,添加如下配置:
safe_mode = on
safe_mode_gid = off
关闭全局变量,配置如下:
register_globals = off
er_globa
Web 木马程序通常利用 PHP 的特殊函数执行系统命令,查询任意目录文件,增加修改删除文件等。PHP 木马程序常使用的函数为: dl, eval, assert, exec, popen, system, passthru, shell_exec 等。
修改 PHP 配置文件php.ini,添加如下配置:
disable_functions= dl,eval,assert,exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert
可酌情调整函数内容。
nfo,assert
magicquotesgpc 会把引用的数据中包含单引号 ' 和双引号 " 以及反斜线 \ 自动加上反斜线,自动转译符号,确保数据操作的正确运行,magicquotesgpc 的设定值将会影响通过 Get/Post/Cookies 获得的数据,可以有效的防止 SQL 注入漏洞。
打开php.ini,安全加固配置方式如下,打开 magicquotesgpc 设置:
magicquotesgpc = On*
otesgpc 设置:
magicquotesgpc = On*
其他参考配置
- 开启 magic_quotes_runtime,对文件或者数据库中取出的数据过滤,能很好的解决二次注入漏洞。
magic_quotes_runtime = On - 关闭错误信息提示:
display_errors = off
display_startup_errors = off - 开启错误日志记录,闭 display_errors 后能够把错误信息记录下来,便于查找服务器运行的原因,同时也要设置错误日志存放的目录,建议跟 webserver 的日志放在一起。
log_errors = On
error_log = /usr/local/apache2/logs/php_error.log - 不允许调用 dl:
enable_dl = off - 关闭远程文件,允许访问 URL 远程资源使得 PHP 应用程序的漏洞变得更加容易被利用,PHP 脚本若存在远程文件包含漏洞可以让攻击者直接获取网站权限及上传 Web 木马,一般会在 PHP 配置文件中关闭该功能,若需要访问远程服务器建议采用其他方式,如 libcurl 库:
allow_url_fopen = off
allow_url_include = off - 开启 http only:
session.cookie_httponly = 1
cookie domain - 开启 https secure:
session.cookie_secure = 1 - 适当的 PHP redirects:
cgi.force_redirect = 0 - SQL 的安全模式:
sql.safe_mode = on
Apache 安全优化建议
Ap
Apache 安装好后,存在默认的示例页面:
需要删除两个目录:icons、manual ,并且注释或删除 Apache 配置文件中的以下两行内容:
Alias /icons/ "/usr/share/apache2/icons/"
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/usr/share/apache2/manual$1
如果 Apache 以 daemon 普通用户启动,则黑客通过网站漏洞入侵服务器后,将获得 Apache 的 daemon 权限,因此需要确认网站 Web 目录和文件的属主与 Apache 启动用户不同,防止网站被黑客恶意篡改和删除。网站 Web 目录和文件的属主可以设置为 root 等(非 Apache 启动用户)。Web 目录权限统一设置为755,Web 文件权限统一设置为644( cgi 文件若需执行权限可设置为 755),只有上传目录等需要可读可写权限的目录可以设置为777。
假设网站目录为/usr/local/apache2/htdocs/,上传目录为/usr/local/apache2/htdocs/upload/
chown -R root:root /usr/local/apache2/htdocs/
chmod 755 /usr/local/apache2/htdocs/
find /usr/local/apache2/htdocs/ -type d -exec chmod 755 {} \;
find /usr/local/apache2/htdocs/ -type f -exec chmod 644 {} \;
chmod –R 777 /usr/local/apache2/htdocs/upload/
为了防止黑客在777权限目录中上传或者写入 Web 木马,因此需要设置 777 权限的目录不能执行或访问脚本。禁止执行或访问脚本的安全配置如下:
Web 木马,因此需要设置 777 权限的目录不能执行或访问脚本。禁止执行或访问脚本的安全配置如下:
<Directory "/usr/local/apache2/htdocs/yourpath">
Options None
AllowOverride None
Order deny,allow
deny from all
<FilesMatch "\.(jpg|jpeg|gif|png)#34;>
Order deny,allow
allow from all
</FilesMatch>
</Directory>
消除目录浏览漏洞
Apache 默认允许目录浏览,如果目录下没有索引文件则会出现目录浏览漏洞。
需要把 Apache 配置文件中的全部 “Indexes” 删除或者改为 “-Indexes”
开启访问日志
开启日志有助于发生安全事件后方便进行入侵回溯,分析原因及定位攻击者:
CustomLog /www/logs/access_log common
默认情况下,Apache 已开启访问日志记录,请在 Apache 配置文件中确认已开启访问日志。
其他参考配置
- FollowSymLinks此指令为默认启用,因此在创建符号链接到网页服务器的文档 root 目录时,请慎重行事。例如,请勿为“/”提供符号链接。
- ServerTokens ProductOnly
serversignature Off
Apache 默认输出的 banner 会泄漏关键信息,如服务器 OS 类型、Apache 版本、安装的应用程序类型及版本。暴露过多的信息只会给黑客带来便利。
在 Apache 配置文件中,修改 ServerToken、ServerSignatre 设置(如果没有这两行配置,请自行添加)。 - UserDir此指令可确认系统中用户帐户是否存在,所以要默认禁用UserDir指令。
要在服务器上启用用户名目录浏览,则须使用以下指令:
UserDir enabled
UserDir disabled root
这些指令用于/root/之外的所有用户目录,可激活其用户目录浏览这一功能。在禁用帐户列表中添加用户,要在UserDir disabled命令行添加以空格分隔的用户列表。
Tomcat 安全优化建议
Apache 软件下载
应该从 Tomcat 官方提供的下载页面进行安装部署。
Tom
编辑server.xml配置文件,确保在 HOST 标签中有记录日志功能,配置如下:
<valve cassname=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.”
Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>
false”/>
注意:
默认 Tomca
为了限制脚本的访问权限,防范 webshell 木马,建议启动时增加安全参数启动,如采用如下方式启动 Tomcat:
Tomcat/bin/startup.sh –security
n/startup.
删除tomcat/webapps/目录下的所有文件及目录,已知webapps目录包含:
Tomcat/webapps/docs/
Tomcat/webapps/examples/
Tomcat/webapps/host-manager/
Tomcat/webapps/manager/
Tomcat/webapps/ROOT/
删除 Tomcat 的 admin 控制台软件:删除{Tomcat安装目录}\webapps下admin.xml文件。
删除 Tomcat 的 Manager 控制台软件:删除{Tomcat安装目录}\webapps下manager.xml文件。
安装目录}\webapps下manager.xml文件。
删除 jspx 文件解析
Tomcat 默认是可以解析 jspx 文件格式的后缀,解析 jspx 给服务器带来了极大的安全风险,若不需要使用 jspx 文件,建议删除对 jspx 的解析,具体操作为修改 conf/web.xml 文件,将如下
Tomcat 在程序执行失败时会有错误信息提示,可能泄漏服务器的敏感信息,需要关闭错误提示信息。可以通过指定错误页面的方式不将错误信息显示给用户,修改tomcat/conf/web.xml,增加如下配置项:
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
r-code>
<location>/500.jsp</location>
</error-page>
注意:
可以根据需要自行增加相应的错误码,常见的如500,404等,location 选项为指定跳转的页面,该 jsp 文件需要自己生成。
Nginx 安全优化建议
Nginx 软件的下载
应该从 Nginx 官方提供的下载页面下载进行部署按照,需要下载最新稳定版本。注意不要下载
cat/etc/nginx/nginx.conf
Nginx 默认不允许目录浏览,请检查目录浏览的相关配置,确保没有目录浏览漏洞。确保 autoindex 的配置为 off ,即 autoindex off 或者没有配置 autoindex。
没有目录
开启日志有助于发生安全事件后回溯分析整个事件的原因及定位攻击者。
默认情况下,Nginx 已开启访问日志记录,请在 Nginx 配置文件中确认已开启访问日志access_log
/backup/nginx_logs/access.log combined;
N
cat/etc/nginx/nginx.conf
添加这行配置:server_tokens off
ces
删除 Nginx 默认首页 index.html,业务可以自行创建默认首页代替之。
删除如下配置信息:
这行配置:server_tokens off
删除默认页
删除 Nginx 默认首页 index.html,业务可以自行创建默认首页代替之。
删除如下配置信息:
:
location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /images { root /usr/share; autoindex off; }
删除首页 index.html 后,新建其他首页内容不允许出现如下首页内容:
其他配置
- 隐藏 Nginx 版本信息,打开配置文件 隐藏版本设置:
Server_tokens off;
攻击者在信息收集时候无法判断程序版本,增加防御系数。 - 禁用非必要的请求方法:
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; }
trace 请求用于网络诊断,会暴露信息,只允许 GET、HEAD、POST 请求,其他请求直接返回444状态码 (444是 Nginx 定义的响应状态码,会立即断开连接,没有响应正文,TRACE 请求 Nginx 内置405拒绝)。
相关推荐
- python获取阿里云云解析dns的域名解析记录
-
最近由于工作原因接触到阿里云的服务,我需要实时获取所有的域名信息,用于对其进行扫描,因此写了一个自动化爬取脚本给需要的人分享。(阿里云有官方的demo,有兴趣的可以自己看一下,后面也会放链接,我只能...
- 前端性能优化系列——DNS预解析和优化
-
简单来说,DNS的作用是将域名解析为IP地址,解析的过程是耗时的,转化后会做本地缓存,我们的优化的目标主要是针对用户第一次访问站点的时候陷入长时间白屏的问题。DNS解析可以分为两类,第一类是页...
- dns错误修复方法
-
最近用户反馈在同一网络的其他电脑可以正常上网,但自己的电脑却提示页面找不到且无法解析服务器的dns地址,接下来给大家带来dns错误修复方法。 1、点击网络图标,选择打开网络共享中心,如图所示: ...
- 技术分享 | 浅谈DNS递归解析和迭代解析之间的区别
-
DNS解析是互联网中的重要环节,承担着将域名翻译为可由计算机直接读取的IP地址的基础功能。根据查询对象不同DNS解析可分为递归解析和迭代解析两种方式,接下来,中科三方将简单介绍下两种查询方式的流程以及...
- 一文读懂DNS解析故障常见情况(中科三方)
-
DNS解析将人们习惯使用的域名翻译成计算机识别的IP地址,是确保人们正常访问网站的重要功能。而在实际域名管理过程中,经常会因为种种原因导致DNS解析故障。DNS解析故障主要表现在人们通过IP地址可以直...
- DNS分离解析实验
-
如果本文对你有帮助,欢迎关注、点赞、收藏、转发给朋友,让我有持续创作的动力目录一、分离解析概述二、实验需求三、实验步骤3.1双网卡服务器配置3.1.1添加两张网卡(内外网)3.1.2对两个网卡进...
- #净网2019# 浏览网页被“劫持”,有问题!
-
明明自己没有设置过,打开网页浏览器却直接到了一个陌生网站,想改回原来的主页设置颇费周折、甚至无能为力。很多网民有过类似经历:在安装了一些软件后,自己的浏览器主页就被修改和锁定。本来打算访问A网站却被强...
- 解决浏览器劫持,360和腾讯安全不敌火绒专杀
-
上午win7莫名其妙显示未激活,并要求当日必须激活,没办法,上网找激活工具,先试了“小马”没起作用,又下载了“WIN7ActivationV2.3绿色版”,就是这个:激活是激活了,顺便给我安了一堆垃...
- 【净网2019】 浏览网页被“劫持”,有问题!
-
明明自己没有设置过,打开网页浏览器却直接到了一个陌生网站,想改回原来的主页设置颇费周折、甚至无能为力。很多网民有过类似经历:在安装了一些软件后,自己的浏览器主页就被修改和锁定。本来打算访问A网站却被...
- 浏览器打开网页被绑架?这里有办法
-
最近小A遇到了一个小问题:在240g上网冲浪的时候,搜索到的网页,点进去却“李逵变李鬼”???在使用浏览器时,点击搜寻结果却导向与搜寻内容不符合的网站,表示您的浏览器可能已遭受恶意软件劫持。例如您在搜...
- 处理浏览器主页被劫持的最新方法
-
给大家说个处理浏览器主页被劫持的最新方法:刚遇件让人哭笑不得的事,这两天发现浏览器的主页打开后不是自己原来设置的,而是hao123,一百度,好家伙,原来这个流氓许多人都遇到过,照着大家分享的方法一一尝...
- 软件性能测试详解
-
性能测试的基本概念性能测试是一种非功能性测试,通过自动化工具模拟多种负载条件(正常、峰值、异常),对系统的各项性能指标进行测试和评估,以验证其是否满足预期的性能需求。以下是核心概念的详细解析:一、性能...
- 国内粉色图标视频网站偷用带宽风波,WebRTC Control 插件来救场
-
最近,B站陷入了一场舆论风波,被指偷偷使用用户上传带宽。有网友在浙江大学论坛投稿称,B崭新版App疑似未经许可大量上传数据致网络卡顿,查看路由器统计信息后,发现B站手机客户端开启大量端口,...
- 服务器知识
-
问:机架式和非机架式是什么意思?服务器中“U”是什么单位?答:机架式、非机架式指的是服务器的类型。机架式是指可以直接插入机柜的标准服务器。非机架式是其他类型的服务器。譬如说我们普通的pc机的主机。大小...
- Vue3 性能拉胯?5 个实战技巧让项目响应速度飙升 60%!
-
作为前端工程师,在开发Vue3项目时,你是否经常遇到页面卡顿、数据更新缓慢,导致用户体验直线下降的情况?看着自己精心搭建的应用,因为性能问题被吐槽,真是既无奈又焦虑。别担心,今天就分享5个超级...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)