CentOS默认的openssh的版本都有严重漏洞,必须升级到最新版。
nginx的location段中使用下面的配置
proxy_set_header Host www.test.com; // 使用域名或者ip,不能用Host $host;
也可以对nginx的server段再加上 对 $host 变量的判断,如:
if ( $host != 'www.test.com') {
return 403;
}
nginx的location段中使用下面的配置
add_header X-Frame-Options SAMEORIGIN;
nginx的Server和location段添加:
add_header Set-Cookie HttpOnly;
add_header Set-Cookie Secure;
a) 数据加密:提交前用js对用户名、密码加密
b) 传输加密:使用https协议
启用文件类型白名单,只有符合白名单中的文件类型的文件能上传到服务器,并随机重命名文件名
a) 报错页面泄露信息,可能会暴露服务器名、后台框架、数据库结构等敏感信息,导致遭受有针对性的攻击,如针对struts的攻击
b) 多余的无用文件导致信息泄露,如系统中存在一个无用的test.html链接,引起页面报错,导致泄露信息
a) 不允许root用户直接远程访问服务器
b) 不允许应用程序直接配置数据库的root用户访问数据库
c) 配置阿里云安全组,只允许某些ip可以远程访问到服务器
d) 及时关闭离职人员的所有账号
使用java的拦截器,如AntiSqlInjectionInterceptor,对sql关键字和xss攻击的关键字进行消毒过滤,数据库中可以配置对sql和xss需要过滤的关键字
程序需要对被攻击的属性进行可配置,以增强系统的安全。
阿里云服务器可以配置禁止访问服务器的ip或ip段,nginx也可以配置黑名单和白名单
发短信都是通过接口实现的,如果接口被其他人获取则可能被人用于乱发短信或者执行短信轰炸。解决办法:
1、短信接口中添加token验证,每次发送短信都需要先获取端口,token用过之后即失效
2、限制手机号在一定时间内能发送短信的数量,如1分钟内只能发送1条短信,10分钟内只能发送5条短信
在server.xml中配置 maxConnections="100",例如
redirectPort="8443" />
由于程序异常等原因,错误页面可能会暴露tomcat的版本,由于相应的版本存在漏洞可能导致被攻击。解决办法:
1、找到jar包 $TOMCAT_HOME/lib/catalina.jar
2、编辑jar包里的文件 \org\apache\catalina\util\ServerInfo.properties
server.info=My Server
server.number=0.0.0.0
server.built=hello
由于服务异常等原因,错误页面可能会暴露nginx的版本,由于相应的版本存在漏洞可能导致被攻击。解决办法:
在nginx配置文件的http段加入 server_tokens off;
如果需要隐藏服务器的名称,则需要重新编译Nginx,可参考 https://blog.csdn.net/yuanzhenwei521/article/details/78819482
本文内容到此结束,更多内容可关注公众号