通过ajax将大型laravel集合作为变量发送到控制器是否安全且可能?

问题描述 投票:0回答:2
ajax laravel performance security
2个回答
1
投票

这个方法不好。在客户端保存所有必要的数据并将其发送到后端的概念是不好的。下面列出了一些(但不是全部)为什么它是一个糟糕的解决方案。

  1. 安全性,用户将能够查看私有数据或在 JSON 中添加某些内容并将其发送到后端,如果您不验证后端请求中的所有数据,则 DB 中将存储错误和危险的数据。
  2. 表现不佳。正如您已经说过的数据很大,所以发送大数据不是最佳方式。
  3. 不遵循任何概念。

最好发送 id、状态或表单中的任何字段,但不发送集合。


0
投票

这是可能的,但不是一个好的选择,我将尝试解释潜在的问题和解决这些问题的适当方法,如果您仍然想继续,可以通过 Ajax 将大型 Laravel 集合作为变量发送到控制器,但是有关于安全性和性能,需要牢记一些注意事项。

安全

网络延迟:

通过 Ajax 发送大量数据可能会由于通过网络传输数据所需的时间而引入额外的延迟。对于中等规模的集合来说,这可能不是一个重要问题,但对于非常大的集合来说,它可能会影响用户体验。

服务器处理

在服务器端,处理大型集合可能会消耗更多内存和 CPU 资源。如果同时处理多个大型请求,这可能会影响应用程序的响应能力。

替代品

分页

考虑在服务器端实现分页,而不是立即发送整个集合。这样,您只需将数据的子集发送给客户端,他们就可以根据需要请求更多页面。

服务器上的过滤

既然您提到数据已经在客户端集合中进行了过滤,请考虑是否可以将过滤器参数发送到服务器并在那里应用过滤。这可以帮助减少传输的数据量,同时确保过滤逻辑的一致性。

缓存

根据数据的性质,您也许能够实施缓存策略,以减少重复过滤和处理相同数据的需要。

总之,您可以在这里做您想做的事情,但这应该在计划中采取适当的安全措施来完成。

© www.soinside.com 2019 - 2024. All rights reserved.