Java ESAPI SecurityWrapper和REST接口
我有一个Spring引导应用程序,它公开了许多REST接口。公司web开发安全标准要求在我的应用程序中使用ESAPI SecurityWrapper过滤器 ESAPI SecurityWrapper强制将Http状态代码覆盖到200,以便Java ESAPI SecurityWrapper和REST接口,java,rest,esapi,Java,Rest,Esapi,我有一个Spring引导应用程序,它公开了许多REST接口。公司web开发安全标准要求在我的应用程序中使用ESAPI SecurityWrapper过滤器 ESAPI SecurityWrapper强制将Http状态代码覆盖到200,以便使用自动扫描程序挫败攻击者。这对我的REST接口有明显的影响 SecurityWrapper是否有公认的解决方案,以使Http状态代码不受影响。到目前为止,我的所有尝试都非常不成熟,不太可能得到这里的安全人员的批准。如果您想要自定义行为,扩展SecurityWr
使用自动扫描程序挫败攻击者。
这对我的REST接口有明显的影响
SecurityWrapper是否有公认的解决方案,以使Http状态代码不受影响。到目前为止,我的所有尝试都非常不成熟,不太可能得到这里的安全人员的批准。如果您想要自定义行为,扩展SecurityWrapperFilter应该很容易。混淆攻击者是一件好事。强制执行SecurityWrapperFilter实际上是一项可怕的策略,原因正是:安全实现妨碍了预期的正常使用。因此,在搜索ESAPI源代码时,我看不到调用
SecurityWrapperResponse.sendError(int)
的位置。你确定它会覆盖你的响应吗?@avgvstvs:我已经通过调试器运行了它,它肯定会被调用。过滤器用包装的等价物替换请求和响应对象,因此代码对请求和响应对象的任何调用实际上都会调用包装对象中的实现-因此,如果出现致命错误,我的代码会将响应代码设置为500,但它调用的方法实际上忽略了我传入的值,并将其替换为HttpStatus。好吧,它不会立即帮助您,但我打开了一张罚单:事实上,这让开发人员非常困惑,因为我花了一段时间才发现我的http返回码出了什么问题。。。。子类化并不像你想象的那么容易。该行为来自一个对象,该对象是从过滤器中new
ed。