在網站開發設計的過程當中,我們會多多少少的遇到網站跨域的問題,一般網站的跨域,
除了一個簡單的img、link、script、iframe等等的標籤調用法的跨域,還有一些特殊用途用到
的跨域方式,我們現在瞭解應用比較廣泛的JSONP跨域。
JSONP 網站跨域方式
JSONP英文稱呼(JSON WITH PADDING),跨域的作用機制是調用在script標籤裡,這個需
要網站開發人員在設計的過程當中,前端以及網站後端都要做好函數對接工作,這樣才能使
JSONP的跨域有效果。原理機制是當用戶訪問並請求到網站後端的情況下,會返回一個JS的
地址,該JS地址會直接調用之前程序員設置好的函數,並把用戶前端輸入的數據作為一個參數,
傳入到後端主機裡,並成功的完成數據的對接工作。
要網站開發人員在設計的過程當中,前端以及網站後端都要做好函數對接工作,這樣才能使
JSONP的跨域有效果。原理機制是當用戶訪問並請求到網站後端的情況下,會返回一個JS的
地址,該JS地址會直接調用之前程序員設置好的函數,並把用戶前端輸入的數據作為一個參數,
傳入到後端主機裡,並成功的完成數據的對接工作。
我們看個例子,如下圖所示:
當用戶訪問一個頁面,是不同跨域的頁面就會返回沒有值的頁面,在上面的這個例子裡,我們
可以看出來,程序內置好的函數為foot經過callback函數的調用並直接傳遞給主機的後端,後
端主機根據傳遞過來的參數值進行判斷匹配,並返回給用戶相應的值,來達到網站交互的功
能,並實現整個jsonp的跨域調用,在整個調用過程當中,我們使用的都是script標籤,用戶的提
交方式也只能是以GET提交數據的方式來執行。
可以看出來,程序內置好的函數為foot經過callback函數的調用並直接傳遞給主機的後端,後
端主機根據傳遞過來的參數值進行判斷匹配,並返回給用戶相應的值,來達到網站交互的功
能,並實現整個jsonp的跨域調用,在整個調用過程當中,我們使用的都是script標籤,用戶的提
交方式也只能是以GET提交數據的方式來執行。
JSONP跨域調用的方式上還存在著一些安全風險:
第一個是API 跨域調用的接口頁面是大家都可以調用的那還好說,如果是管理員內部使用的一
個API跨域接口那麼帶來的安全風險也是很大,存在著用戶隱私安全洩露風險。
個API跨域接口那麼帶來的安全風險也是很大,存在著用戶隱私安全洩露風險。
第二個是跨域調用返回的函數里用的JS代碼的話,那麼前端用戶輸入過來的值沒有做判斷的話,
或者是安全過濾的話,有可能造成SQL注入問題,以及XSS跨站攻擊,甚至嚴重一點的話會導
致SOME漏洞的發生。
或者是安全過濾的話,有可能造成SQL注入問題,以及XSS跨站攻擊,甚至嚴重一點的話會導
致SOME漏洞的發生。
以上兩個安全風險,在程序員開發網站代碼的過程中,一定要提前做好漏洞修復,包括網站上
線後,要做好網站安全檢測,檢測是否存在以上的安全風險,盡可能的對用戶輸入的值進行嚴謹
的過濾,保障整個網站的安全穩定運行。
線後,要做好網站安全檢測,檢測是否存在以上的安全風險,盡可能的對用戶輸入的值進行嚴謹
的過濾,保障整個網站的安全穩定運行。