www說
2018-12-06 17:28:32
都說eval()是不安全的,還有new Function()也是不安全的,啥腳本注入來著。但是該如何解決這種不安全的問題呢?我搜索了一下,貌似是啥腳本庫之類的,但是大部分都是在分析他們的使用方法。所以請哪位研究過的大神,分析下該如何解決安全問題,或者說提供個腳本庫參考下,^_^
3 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗 獲得超8個贊
首先感謝你的關(guān)注,至于如何不安全,我也沒有見過,但是不管是網(wǎng)上還是哪里,都會有所耳聞,以我個人的理解應(yīng)該是這樣的。
比如說以下是從php所提供的接口中獲取的數(shù)據(jù)信息。
var jsonStr = '{"a":1,"b":2,"c":function(){alert(1);}()}';
其中的值都是用戶提供的信息。
為了追加到頁面,顯示為用戶,那么得轉(zhuǎn)換成json形式。
var json = eval("("+jsonStr+")"); //或者 var json = new Function("return"+jsonStr)();
結(jié)果是頁面會alert(1);
換句話說,如果那個函數(shù)中不是alert(1);是打開某個鏈接,或者運(yùn)行啥程序之類的,當(dāng)然具體的操作我是不懂了,只是類似的。這樣就感覺會不安全了,頁面可以有用戶操作了。
以上是我的理解。
添加回答
舉報
0/150
提交
取消