[英]Signature the JSON data from client-side to server-side
我将一些JSON数据从客户端发送到服务器端。
有能力的用户可以修改JSON数据,因为该代码可用于任何人(JS脚本)。
如何针对伪造的JSON数据检查正确的JSON数据。
我考虑过一些签名,但是我不知道该怎么做。
谢谢你的帮助!
例:
//real//
let user = {
name: "John",
gender: "man"
}
//fake//
let user = {
name: "John",
gender: "woman"
}
只是示例,JSON数据可以不同。
EDIT1:我可以验证数据是否正确,但这将非常困难。
您需要为Javascript使用JSONSchema验证器。 @TDEGrunt 在这里很不错。 有关如何使用它的示例,请参见自述文件。
感觉就像是从山坡上爬出来。
听起来像“伪造”数据,您的意思是不应允许用户修改数据,和/或不完全符合逻辑? 与其尝试控制他们发送的内容(这非常困难),不如直接检查一下。 你应该:
a)验证其发送的内容(无论如何,应进行检查,以检查诸如字符串之类的地方应该有数字,或者逻辑上不属于在一起的值组合(例如, "state: "Alaska", "country: "Russia"
)),并在发现问题时返回验证错误,
和/或
b)让您的服务器忽略用户不应该更新的任何字段(这是对有时被称为“过度发布”攻击的防御)。
和/或
c)检查用户对特定数据项的权限。 例如,也许他们可以修改自己的名字,但不能修改别人的名字。
是的,数据验证可能很乏味,但这是任何基于Web的应用程序中正常且非常必要的部分。 由于您不能完全控制客户端,因此您不能信任发送给您的任何信息,并且必须始终检查数据是否基本有效,并且客户端可以(针对您的身份验证和授权规则)核实它们是否具有发送该数据的权限(或者,如果这是请求的目的,则实际上是要获得的数据)。
大多数编程框架都具有内置功能(通常由3rs party软件包进行增强,以使验证,身份验证和授权的代码痛苦减轻得多)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.