在網站開發設計的過程當中,我們會多多少少的遇到網站跨域的問題,一般網站的跨域,除了一個簡單的img、link、script、iframe等等的标簽調用法的跨域,還有一些特殊用途用到的跨域方式,我們現在了解應用比較廣泛的JSONP跨域。
JSONP 網站跨域方式
JSONP英文稱呼(JSON WITH PADDING),跨域的作用機制是調用在script标簽裡,這個需要網站開發人員在設計的過程當中,前端以及網站後端都要做好函數對接工作,這樣才能使JSONP的跨域有效果。原理機制是當使用者通路并請求到網站後端的情況下,會傳回一個JS的位址,該JS位址會直接調用之前程式員設定好的函數,并把使用者前端輸入的資料作為一個參數,傳入到後端伺服器裡,并成功的完成資料的對接工作。
我們看個例子,如下圖所示:

JSONP跨域方式
當使用者通路一個頁面,是不同跨域的頁面就會傳回沒有值的頁面,在上面的這個例子裡,我們可以看出來,程式内置好的函數為foot經過callback函數的調用并直接傳遞給伺服器的後端,後端伺服器根據傳遞過來的參數值進行判斷比對,并傳回給使用者相應的值,來達到網站互動的功能,并實作整個jsonp的跨域調用,在整個調用過程當中,我們使用的都是script标簽,使用者的送出方式也隻能是以GET送出資料的方式來執行。
JSONP跨域調用的方式上還存在着一些安全風險:
第一個是API 跨域調用的接口頁面是大家都可以調用的那還好說,如果是管理者内部使用的一個API跨域接口那麼帶來的安全風險也是很大,存在着使用者隐私安全洩露風險。
第二個是跨域調用傳回的函數裡用的JS代碼的話,那麼前端使用者輸入過來的值沒有做判斷的話,或者是安全過濾的話,有可能造成SQL注入問題,以及XSS跨站攻擊,甚至嚴重一點的話會導緻SOME漏洞的發生。
以上兩個安全風險,在程式員開發網站代碼的過程中,一定要提前做好漏洞修複,包括網站上線後,要做好網站安全檢測,檢測是否存在以上的安全風險,盡可能的對使用者輸入的值進行嚴謹的過濾,保障整個網站的安全穩定運作。