Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

Define allowed character in ASM for JSON parameter

PhilippeG
Nimbostratus
Nimbostratus

I'm intercepting a POST with JSON parameter and I want to check the content but I'm not able to see where to define allowed character, length and type of each parameter

I defined my parameters as JSON value

0691T00000F6LSwQAN.png

If I post following request, it's working

<code>

{

  "data": {

    "type": "enrollment",

    "attributes": {

      "fire": "t",

      "app": "t",

      "installation": "t",

      "credential": "t",

      "phoneNumber": "1"

    } 

  }

}

</code>

This one is also working

<code>

{

  "data": {

    "type": "enrollment",

    "attributes": {

      "fire": "f",

      "app": "f",

      "installation": "f",

      "credential": "f",

      "phoneNumber": "1"

    } 

  }

}

</code>

But If I post following content, it's blocked with error message that I have "illegal character" (It's the same character as above but I have two character in the value instead of one)

<code>

{

  "data": {

    "type": "enrollment",

    "attributes": {

      "fire": "tf",

      "app": "tf",

      "installation": "tf",

      "credential": "tf",

      "phoneNumber": "2"

    } 

  }

}

</code>0691T00000F6LSxQAN.png

So where can I define the length and type of each JSNO value ?

1 ACCEPTED SOLUTION

Are you sure those are JSON values and not user-input values?

Do you have an OpenAPI Spec file to verify?

 

Since you are running on 15.1.2.1, as  stated - if you have a OpenAPI Spec file can you create a policy "REST API Security (Open API Spec) " with the Guided Configuration?

 

KR

Daniel

View solution in original post

9 REPLIES 9

Daniel_Wolf
Nacreous
Nacreous

Hi ,

 

the example which is blocked looks like valid JSON. Maybe check yourJSON Profile here:

Security ›› Application Security : Content Profiles : JSON Profiles

 

As a reference, check the Manual Chapter : Adding JSON Support to an Existing Security Policy.

 

KR

Daniel

 

PhilippeG
Nimbostratus
Nimbostratus

Hi  

Thanks for the reply. I already had a look to this page and I also checked "character set" in "application security - Content profiles - Character sets - JSON content" and in "application security - Parameters - Character sets - Parameter Value/Name".

What I don't understand is why it's accepted when the character is in first position in the value but not when he is in second position (or more)

KR

Philippe

Sorry, maybe I was on the wrong track.

Does this violation occur with any combination of more than one character in the value?

Or only when the f is in second position?

Or on any character in the second position?

 

EDIT: Did you change the Default JSON profile?

It's depend the character, when I'm sending "ft" or "tf", it's occur on second character.

If I'm sending "a" it's occur on first parameter.

And what is strang is that violation occur only on parameters "fire" and "installation" even if my four parameters (fire, installation, app and credential) have the same value.

 

Hi ,

 

I managed to reproduce your issue, but could not find a solution yet.

Which version are you on?

 

KR

Daniel 

Are you sure those are JSON values and not user-input values?

Do you have an OpenAPI Spec file to verify?

 

Since you are running on 15.1.2.1, as  stated - if you have a OpenAPI Spec file can you create a policy "REST API Security (Open API Spec) " with the Guided Configuration?

 

KR

Daniel

For me those are JSON values as if I define parameters as "user input" nothing is catched (also disallowed character).

I asked developper to forward me OpenAPI spec file but currently I didn't receive any answer. I hope to have something next week

KR

Philippe

  I received a spec file from customer and created a new policy with the guided config. Parameters are correctly seen and secured

At the end you were right, parameters are recognized as "user input value". I will now check both policies to understand what was wrong in the first one

CarineP
F5 Employee
F5 Employee

Hi Daniel, Philippe is testing in v15.1.2.1