官术网_书友最值得收藏!

  • 編程與類型系統(tǒng)
  • (美)弗拉德·里斯庫迪亞
  • 262字
  • 2021-01-29 11:51:22

1.1 為什么存在類型

在低層的硬件和機(jī)器代碼級(jí)別,程序邏輯(代碼)及其操作的數(shù)據(jù)是用位來表示的。在這個(gè)級(jí)別,代碼和數(shù)據(jù)沒有區(qū)別,所以當(dāng)系統(tǒng)誤將代碼當(dāng)成數(shù)據(jù),或者將數(shù)據(jù)當(dāng)成代碼時(shí),就很容易發(fā)生錯(cuò)誤。這些錯(cuò)誤可能導(dǎo)致系統(tǒng)崩潰,也可能導(dǎo)致嚴(yán)重的安全漏洞,攻擊者利用這些漏洞,讓系統(tǒng)把他們的輸入數(shù)據(jù)作為代碼執(zhí)行。

JavaScript的eval()函數(shù)就是寬松解釋代碼的一個(gè)例子,它將一個(gè)字符串視為代碼執(zhí)行。當(dāng)提供給該函數(shù)的字符串是有效的JavaScript代碼時(shí),它的效果很好,但是如果提供的字符串不是有效的JavaScript代碼,就會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,如程序清單1.1所示。

程序清單1.1 試圖將數(shù)據(jù)解釋為代碼

主站蜘蛛池模板: 项城市| 金门县| 邯郸市| 蕉岭县| 兴山县| 保德县| 芜湖市| 怀来县| 嫩江县| 开封县| 土默特左旗| 山东省| 辽宁省| 丰镇市| 凭祥市| 喀喇沁旗| 星子县| 平昌县| 密云县| 杨浦区| 车致| 唐海县| 民和| 和田县| 三都| 河曲县| 霍城县| 永宁县| 麦盖提县| 甘谷县| 孟州市| 海伦市| 开阳县| 大方县| 皋兰县| 浪卡子县| 临夏县| 漾濞| 呈贡县| 花莲市| 临沂市|