图片索引
您可以参考如下示例,配置图片索引。
图片检测(OpenAI请求方式)
OpenAI请求方式中,需要开启并配置索引,用以查找、访问和处理图片信息。该索引为请求Body体的JSONPath,并遵循JSONPath语法,支持表1中的所有示例。详细配置示例如下所示。
- 以如下Curl命令为例,参考如下配置,添加一条OpenAI请求方式的图片检测规则。
curl https://api.example.com/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "MODEL-DEPLOYMENT-NAME", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "data:image/<your_image_type>;base64,<your_image_data>" } } ] } ], "max_tokens": 100, "stream": false }'图1 图片检测配置示例(OpenAI请求方式)
表1 图片检测关键参数配置(OpenAI请求方式) 参数
取值
图片路径
/chat/completions
图片索引
,填写索引:$.messages[*].content[*].image_url.urlOCR检测

内容检测
,选择要进行内容检测的项目,此处建议全选。防护动作
拦截
拦截页面设置
HTTP返回码
403
页面类型
application/json
页面内容
{ "message": "您的输入不合法,请换一个话题。", "code": "content_policy_violation" } - 在大模型页面提问:“Describe these pictures:”并附上图片。
- WAF收到完整请求:
{"model":"model-name","stream":true,"messages":[{"role":"user","content":" You are a helpful assistant"} , {"role": "user", "content": [{"type": "text", "text": "Describe these pictures:"}, {"type": "image_url", "image_url": {"url": "data:image/<your_image_type>;base64,<your_image_data>"}WAF根据已配置的图片索引,识别到请求image_url中的图片的Base64编码,如果Base64编码对应的图片内容中包含违禁内容,拦截该请求。
图片检测(直接上传图片)
- multi-part表单式
curl https://api.example.com/chat/completions -F "file=@<your_image_file_path>"
- 二进制内容data-binary式
curl https://api.example.com/chat/completions -H "Content-Type: image/<your_image_type>" --data-binary @<your_image_file_path>
- 以上述Curl命令为例,参考如下配置,添加一条图片检测规则。图2 图片检测配置示例(直接上传图片)

表2 图片检测参数配置(直接上传图片) 参数
取值
图片路径
/chat/completions
图片索引

该方式中,当前路径即为图片路径,无需开启并配置图片索引,即可进行检测。
OCR检测

内容检测
,选择要进行内容检测的项目,此处建议全选。防护动作
拦截
拦截页面设置
HTTP返回码
403
页面类型
application/json
页面内容
{ "message": "您的输入不合法,请换一个话题。", "code": "content_policy_violation" } - 在大模型页面发送图片,其中图片内容会自动发送到“/chat/completions”的“图片路径”中。
- WAF收到完整请求,会自动解析图片的二进制内容,如果对应的图片内容中包含违禁内容,拦截该请求。

