本文首发于我的微信公众号《andyqian》,期待你的关注!nginx
前言tomcat
有好一段时间没有更新文章了,期间有好几回提笔。却又不知,如何下手。今天来分享两个常见的小问题。安全
问题描述:不管是使用xftp工具,仍是使用rz命令上传至Linux服务器中的文件大小老是为0。服务器
致使缘由 :
经分析,因为系统磁盘被占满致使。微信
能够经过命令df -lh
命令来查看系统状况。 以下所示:工具
[root@-tomcat01 ~]# df -lh
spa
Filesystem Size Used Avail Use% Mounted on
设计
/dev/vda1 79G 79G 0G 100% /
代理
tmpfs 1.9G 0 1.9G 0% /dev/shm
日志
/dev/vda3 16G 44M 15G 1% /home
其中:
Size :表示该磁盘(挂载区)的总大小。
Used :表示已使用大小。
Avail: 表示剩余可用大小。
Use%: 表示磁盘使用率。
Mounted on:表示挂载区,其中 / 表示根目录
备注: 咱们能够经过上述参数,来了解系统当前磁盘的使用状况。
解决办法:
删除掉服务器中多余的文件,释放服务器资源。
若是服务器没有多余文件,能够考虑增长磁盘空间。
咱们在设计系统时,有不少场景须要获取到用户的真实IP地址。其中部分业务还依赖用户的真实IP地址。
包括但不限于如下场景::
记录用户登陆行为。
在关键业务中,记录用户请求ip地址。
用户短期內频繁切换IP地址,须要进行安全验证等等。
在单机应用时,咱们一般使用request.getRemoteAddr();
方法就能获取到用户的真实ip地址。但使用负载,以及代理服务器时,咱们就应该使用下述方法进行获取:
public static String getRemoteAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
若是使用nginx做为代理服务器,一般建议在nginx/conf下nginx.conf文件中对应的location路径下添加如下配置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
在上一篇文章中,我谈到了用户隐私。做为软件从业者,咱们有义务,更有责任保护好用户的隐私数据。一些稍成规模的公司。通常都会有安所有门。对业务数据提出安全性的建议以及对用户数据安全作攻防。最近作的业务与安全联系的比较多。在这里就再啰嗦几句。就算抛砖引玉了。
对于用户敏感信息:
手机号,邮箱,登陆密码,交易密码,身份证信息
等隐私数据均要以密文的形式落库。在业务层进行数据的加解密。
接口提供出来的隐私数据,均要进行混淆处理。
系统中关键路径中尽量的记录用户信息。(如登陆请求,记录用户ip地址等等)。
推荐阅读:
扫码关注,一块儿进步
我的博客: http://www.andyqian.com