(файл testRequests.http можно использовать в плагине HTTP -клиента Rider IDE, или вы можете просто скопировать его во что -то подобное, как почтальон)
, несмотря на то, что я установил typenamehandling.none , рецензенты безопасности в моей компании все еще думают, что наличие объекта тип В любом месте контракта API уязвим для небезопасной десериализации. Они еще не предоставили конкретную демонстрацию, показывающую успешную эксплойт, но они все еще думают, что нам нужно избежать каких -либо шансов на один. Поэтому они хотят, чтобы я указал строгие типы во всех контрактах API. DeserializationDemo.BaseSetting. Однако это требует кастинга до newtonsoft.json.linq.jobject . И это тот же тип, что и democontract1 , кажется, в любом случае де-эриализован, когда я проверяю с отладчиком. Так не было бы подозрительно к той же (гипотетической) уязвимости? /N8kxi.jpg " /> < /p>
Единственная альтернатива, которую я вижу, - избегать полиморфных типов все вместе. Чтобы сделать разные конечные точки, каждая со своим строгим типом, для каждой из 900+ функций. < /P>
Мои вопросы для сообщества: < /p>
- Настройка typenamehandling.none < /strong> недостаточно, чтобы избежать небезопасной десериализации? быть Более строгие по разрешенным типам, но не приведет к де-эриализации newtonsoft.json.linq.jobject?
Подробнее здесь: https://stackoverflow.com/questions/782 ... onsoftjson