本文首發於我的微信公衆號《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