【问题标题】:Symfony json schema validation: no html tagsSymfony json 模式验证:没有 html 标签
【发布时间】:2017-09-26 16:53:49
【问题描述】:

如何在 Symfony 项目中使用 Json Schema 为所有输入创建基本要求。例如,我有多个模式,但 "type": "string" 的所有属性都不应该接受 HTML 标记作为输入?可能应该有一些正则表达式规则。但是我需要找到方法使其成为验证方法中所有输入的基本验证规则,而不更改每个架构文件

public function check($jsonData, $schemaFilePath){
    $path = $this->fileLocator->locate($schemaFilePath);

    $schema = (object)['$ref' => 'file://' . $path];

    $this->validator->validate($jsonData, $schema);

    if($this->validator->isValid()){
        return null;
    }else{
        return $this->validator->getErrors();
    }
}

希望我的问题很清楚。让我知道是否可以添加更多详细信息

【问题讨论】:

    标签: php json symfony jsonschema json-schema-validator


    【解决方案1】:

    这里有两个问题:

    • 在 json 架构中无法定义这样的“基本要求”
    • 无法使用正则表达式验证 html。即使您尽最大努力也只会产生部分有效的结果,因此您的正则表达式会提供假阴性和假阳性

    我认为最好将此验证移至应用程序级别并使用适当的 HTML 解析器而不是正则表达式。

    【讨论】:

      【解决方案2】:

      我建议使用 JSON 模式包(第三方),它可能带有验证器,例如:

      https://github.com/justinrainbow/json-schema

      https://github.com/HadesArchitect/JsonSchemaBundle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        • 1970-01-01
        • 2013-03-17
        • 2017-11-12
        • 2011-06-08
        • 1970-01-01
        相关资源
        最近更新 更多