賬號(hào)被盜?可能不是你的原因!網(wǎng)站跨域要做好!
跨域案例:
案例1:
有一些黑客利用iframe技術(shù)將支付寶,銀行等真正的登錄頁(yè)面嵌套到黑客自己的頁(yè)面里面,這樣的話,如果你的網(wǎng)站沒(méi)有同源限制,那么你所輸入的用戶名密碼就被黑客利用JavaScript腳本輕易的獲取走了,從而造成不必要的損失。
案例2:
我們都知道http請(qǐng)求沒(méi)有https安全,因?yàn)閔ttps是加證書校驗(yàn)過(guò)得請(qǐng)求,對(duì)于諸多項(xiàng)目升級(jí)這個(gè)https改造時(shí)候也是一個(gè)比較關(guān)鍵的問(wèn)題所在。
以上說(shuō)的就是跨域策略的問(wèn)題,跨域涉及到網(wǎng)站以及網(wǎng)站用戶數(shù)據(jù)安全性,如果處理不好,很容易導(dǎo)致數(shù)據(jù)泄露,給公司帶來(lái)?yè)p失。
跨域解釋:
我們都知道在JavaScript當(dāng)中,存在一個(gè)很重要的限制(同源策略),學(xué)名:"Same-Origin Policy"。
這個(gè)策略對(duì)你在系統(tǒng)中能夠訪問(wèn)到的頁(yè)面做了嚴(yán)格的控制,比如js只能訪問(wèn)同域下的內(nèi)容,不同的域之間禁止訪問(wèn)等。
舉個(gè)實(shí)際的例子就是你在contact.beijingdesigner.com里面不能向app.beijingdesigner.com提交請(qǐng)求。
跨域方案:
(1) 添加注解解決跨域問(wèn)題
- @CrossOrigin(origins = "contact.beijingdesigner.com", maxAge = 3600)
這就表示允許接受域名contact.beijingdesigner.com發(fā)過(guò)來(lái)的請(qǐng)求。
(2) 使用filter允許跨域訪問(wèn)
類實(shí)現(xiàn)Filter,重寫doFilter方法設(shè)置允許跨域
(3) 針對(duì)springboot內(nèi)置tomcat的解決方案
需要在application.yml文件里面添加幾行配置:
- server.tomcat.remote_ip_header=x-forwarded-for
- server.tomcat.protocol_header=x-forwarded-proto
- server.tomcat.port-header=X-Forwarded-Port
- server.use-forward-headers=true
(4) 外置tomcat解決方案
也有的是將springboot項(xiàng)目打成一個(gè)war包放到了tomcat里面進(jìn)行。
這樣要想解決跨域問(wèn)題,就得在外置tomcat里面進(jìn)行設(shè)置filter(當(dāng)然了,方案不是固定的,這里只說(shuō)一種)