java web 保护_java web项目请求控制及简单漏洞防范
背景:當(dāng)時(shí)項(xiàng)目沒用什么框架,過濾器,請求限制等都需要自己手寫。
1、請求加時(shí)間戳
在后臺(tái)過濾器中可以加判斷,如果請求時(shí)間戳與服務(wù)器時(shí)間相差太大,可以返回異常,具體情況可以具體使用。
請求中加時(shí)間戳的示例如下:
①form表單提交,在表單內(nèi)加隱藏域,通過js代碼給id賦值。
$("#curdate").attr("value",timestamp);
②ajax請求后臺(tái)
var timestamp =(newDate()).valueOf();
var data={"a":a,"b":b,"curdate":timestamp};
2、jsp獲取數(shù)據(jù)需要驗(yàn)證
例以下代碼可能存在漏洞:
...
Employee ID:
如果 eid 只包含標(biāo)準(zhǔn)的字母或數(shù)字文本,這個(gè)例子中的代碼就能正確運(yùn)行。如果 eid 里有包含元字符或源代碼中的值,那么 Web 瀏覽器就會(huì)像顯示 HTTP 響應(yīng)那樣執(zhí)行代碼。
起初,這個(gè)例子似乎是不會(huì)輕易遭受攻擊的。畢竟,有誰會(huì)輸入導(dǎo)致惡意代碼的 URL,并且還在自己的電腦上運(yùn)行呢?真正的危險(xiǎn)在于攻擊者會(huì)創(chuàng)建惡意的 URL,然后采用電子郵件或者社會(huì)工程的欺騙手段誘使受害
者訪問此 URL 的鏈接。當(dāng)受害者單擊這個(gè)鏈接時(shí),他們不知不覺地通過易受攻擊的網(wǎng)絡(luò)應(yīng)用程序,將惡意內(nèi)容帶到了自己的電腦中。這種對易受攻擊的 Web 應(yīng)用程序進(jìn)行盜取的機(jī)制通常被稱為反射式 XSS。
所以需要將數(shù)據(jù)過濾,使用c標(biāo)簽,再加上自定義el表達(dá)式,過濾特殊字符。最終代碼如下:
①引入c標(biāo)簽
②自定義el函數(shù)
1在任意位置寫一個(gè)過濾方法
public classELFilter {public staticString filter(String message){if(message==null){return null;
}//結(jié)合實(shí)際,數(shù)據(jù)都為簡單的數(shù)字或者字母漢字,不會(huì)出現(xiàn)特殊符號(hào),把以下特殊字符直接抹掉
message = message.replace("
message= message.replace(">", "");
message= message.replace("?", "");
message= message.replace("#", "");
message= message.replace("$", "");
message= message.replace("&", "");
message= message.replace("%", "");
message= message.replace("\n", "");
message= message.replace("\"", "");
message= message.replace("'", "");
message= message.replace("{", "");
message= message.replace("}", "");returnmessage;
}
}
2在項(xiàng)目WEB-INF下創(chuàng)建 elfilter.tld 文件,內(nèi)容如下:
1.0
2.0
function
/WEB-INF/elfilter.tld
filter
com.a.b.util.elecheat.ELFilter
java.lang.String filter(java.lang.String)
3前臺(tái)引用
3、隱藏http響應(yīng)頭中的nginx或者apach版本信息
tomcat
修改之前? ?Server:Apache-Coyote/1.1? ,泄露了當(dāng)前容器的類型,可能會(huì)被針對攻擊
修改方法:
在tomcat的conf路徑下,server.xml中,
nginx
修改nginx.conf
http {
……
server_tokens off; ->即可隱藏版本號(hào)
…….
}
4、----
---禁制除get、post外其他的訪問方式
---限制同一ip訪問頻率
---前后臺(tái)數(shù)據(jù)獲取時(shí)加入驗(yàn)證或者過濾
---cookie安全? ?COOKIE安全與防護(hù)
---http頭信息
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java web 保护_java web项目请求控制及简单漏洞防范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java语言基本语法_Java语言基本语
- 下一篇: proftpd java_Proftpd