Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在用户输入中使用.serialize()安全吗?_Jquery_Security_Serialization_User Input - Fatal编程技术网

Jquery 在用户输入中使用.serialize()安全吗?

Jquery 在用户输入中使用.serialize()安全吗?,jquery,security,serialization,user-input,Jquery,Security,Serialization,User Input,在用户输入中使用.serialize()是否安全,就像下面的ajax一样?我不知道这是否与安全有关 $.ajax({ url: 'process.php', type:'post', data: $("#form").serialize() }) 我在某个地方读到(我想是在这里),在请求的某个点,.serialize()取消序列化数据。在PHP中,取消序列化用户输入是不安全的。我不知道这个函数.serialize()在javascript中是如何工作的,也不知道在用户输

在用户输入中使用
.serialize()
是否安全,就像下面的ajax一样?我不知道这是否与安全有关

$.ajax({
    url: 'process.php',
    type:'post',
    data: $("#form").serialize()
})
我在某个地方读到(我想是在这里),在请求的某个点,
.serialize()
取消序列化数据。在PHP中,取消序列化用户输入是不安全的。我不知道这个函数
.serialize()
在javascript中是如何工作的,也不知道在用户输入中使用它是否安全。

jQuery
serialize()
创建
URL
编码文本,用于
HTTP
请求。在使用
serialize()
之前,您始终可以执行
表单
验证(默认或自定义)来清理数据。如果你这样做,我看不到任何安全风险


顺便说一句,这里有
serializeArray()
。它生成一个数组并用于处理。

您可以安全地序列化任何数据,包括用户输入。序列化只是将内存中已经处理过的内容转换为字符串

然而序列化某些内容的典型原因是在某个时候对其进行反序列化。老实说,我想不出别的理由了。现在,反序列化用户输入是不安全的,因为现在在内存中构建结构时会处理字符串,这种处理很容易导致可利用的漏洞


因此,虽然您的问题是关于序列化的,这一部分很好,但反序列化的另一个必要部分不是。

这不是一个本机JavaScript方法,而是一个jQuery方法。因此,添加相关的标记。jQuery
serialize()
创建URL编码的文本,我认为这是安全的。但是,您始终可以在
serialize()
之前执行表单验证(默认或自定义)来清理数据。