【发布时间】:2020-09-23 10:09:31
【问题描述】:
出于好奇,因为 eval 是“邪恶的”。序列化数组可以防止 xxs 攻击吗?据我了解,serializeArray() 方法创建了一个 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
}
});
【问题讨论】:
-
formdata和data是独立的实体。你只是盲目地评估你从服务器返回的东西,所以不,这里没有保护。 -
谢谢,这就是我想确认的。在旧代码中发现了这一点,这让我很好奇。
标签: javascript jquery ajax eval serializearray