2011-01-27 147 views
14

可能重複:
Why exactly is eval evil?爲什麼在JavaScript中eval不安全?

我讀的人聲稱,當任意用戶輸入的代碼運行的eval是不安全的。我理解在訪問文件系統的服務器上運行的其他語言中的這一點。但是,爲什麼在瀏覽器中執行代碼時這很重要?畢竟,你是不是可以直接啓動Firebug並編寫任何你想要的任意腳本?那麼eval有什麼不同呢?

+1

'的eval() `可能是XSS攻擊媒介,如果你不小心 – PaoloVictor 2011-01-27 03:01:47

+1

請進一步解釋 – 2011-01-27 03:04:45

回答

19

eval的危險只會在你服務由愛麗絲向用戶bob爲bob的瀏覽器評估的腳本提供醜陋的頭時。

例如如果bob在你的頁面上輸入他的密碼,alice可以在你輸入的用戶輸入中編寫一個鍵盤記錄器,並將數據編碼成一個腳本,以便bob將(不知不覺)提交給愛麗絲。正如@Hunter2在評論中提到的那樣,這是XSS攻擊。

如果沒有投放到其他人,你是在假設它相當於發射了螢火蟲

正確
2

不認爲這是不安全的,爲最偏執的執行eval = null;

相關問題