亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

序列化數組是否會在傳遞到評估之前對輸入進行清理?

序列化數組是否會在傳遞到評估之前對輸入進行清理?

一只甜甜圈 2022-09-16 21:14:21
出于好奇,因為eval是“邪惡的”。序列化數組是否可以防止 xxs 攻擊?根據我的理解,序列化Array()方法創建了一個對象的JavaScript數組,準備編碼為JSON字符串。如果是這樣,那么評估數據的更好方法是什么。var formdata = $('#form').serializeArray();$.post('https://www.example.com', formdata, function(data) {    if(data) {     var buffer = eval('(' + data + ')');     // do some logic to check for errors    } else {      // sumbit the form    }});
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

變量 formdata 將包含“#form”數據作為數組,并將發布到服務器(example.com)。

服務器將使用一些數據進行響應,現在輪到您對數據“執行一些邏輯”了。根據服務器的不同,響應將是字符串,json或其他數據格式。在這一點上,我感到困惑的是看到評估調用。

eval('(' + data + ')');

這不是您通常處理服務器數據的方式,問題是您是否信任服務器的數據來明確地評估它。

說這是一個更好的主意,只從服務器傳遞數據,并作為JSON接收它,然后遍歷數據。

通常,庫將處理JSON解析,您可以訪問數據并對其進行迭代,就像在javascript中迭代對象/數組一樣。由于您使用的是JQuery,因此我會閱讀$.post的文檔,并在瀏覽器開發工具中檢查服務器響應。


查看完整回答
反對 回復 2022-09-16
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號