将JSON数据存储在数据库中有多危险?

时间:2011-03-15 08:33:00

标签: javascript security json xss

我需要一种机制来存储在客户端javascript中创建的复杂数据结构。我一直在考虑使用stringify方法将javascript对象转换为字符串,将其存储在数据库中然后将其拉回来并使用反向解析方法将javascript对象返回给我。

这只是一个坏主意还是可以安全地完成?如果可以的话,我应该避免哪些陷阱?或者我应该想出自己的方法来实现这个目标吗?

3 个答案:

答案 0 :(得分:9)

可以做到,我已经完成了。它和你的数据库一样安全。

唯一的缺点是在查询中使用存储的数据几乎是不可能的。在轨道下,您可能希望将数据存储为表字段以启用过滤和排序等。

由于数据是用户创建的,因此请确保使用安全方法插入数据以防止注入攻击(不要盲目地将数据连接到查询字符串中)。

答案 1 :(得分:8)

只要您不使用eval进行反序列化,就可以了。

答案 2 :(得分:1)

因为您使用的是数据库,这意味着您需要使用服务器端语言与数据库进行通信。使用大多数服务器端语言,您可以轻松地将所有数据转换为json。

我无法想象一个正确的用例,除非你有一个很好的javascript,它需要非常高效,你已经用尽所有其他可能性,如缓存,查询优化等......

这样做的另一个缺点是,您无法轻松查询数据库中的数据,当您想要完成任何类型的报告时,这总是很好。 如果您的json结构发生变化怎么办?你会更新数据库中的所有脚本吗?或者你会强迫自己应对解析代码的变化吗?

<强>结论

Imho这样做并不危险,但它几乎没有可管理性和未来更新的空间。