- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发我的 struts2 应用程序来解决参数篡改问题。我听说这可以通过在我的操作中实现 ParameterNameAware 接口(interface)来解决,但我还没有找到解释这种情况的最佳示例。谁能给我提供一个关于如何使用 ParameterNameAware 的好例子。快速答复将不胜感激。
最佳答案
这个接口(interface)的整体思想是维护一个有效参数名称列表,并拒绝任何不在该列表(白名单)中的请求参数。当黑客试图将不需要的表单字段值作为可能在某些情况下执行的隐藏变量包含在内时,这非常有用。例如,包含如此多的表单字段变量(>10000等),可能会在服务器端造成拒绝服务。
实现此功能后,您可以立即拒绝当前请求范围内任何不需要的参数,或者可以更好地控制这种情况。
可能的实现:
实现 ParameterNameAware
接口(interface)并重写其 acceptableParameterName
方法,如下所示:
public boolean acceptableParameterName(String parameterName) {
boolean allowedParameterName = true ;
if ( parameterName.contains("session") || parameterName.contains("request") ) {
allowedParameterName = false ;
}
return allowedParameterName;
}
您需要在具有 getter 和 setter 方法的表单 bean 中实现此接口(interface)。在这个特定的例子中,如果当前请求包含任何表单字段变量,如请求或 session ,那么这是一个失败的场景。这只是一个典型的例子。此链接中有完整的文档 Class ParametersInterceptor
关于java - 使用 ParameterNameAware 接口(interface)避免参数篡改 (Struts2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469418/
我正在学习 S2 并正在开发一个应用程序,现在我想在我的操作类中使用 ParameterNameAware,但在此之前我只想向自己澄清一些问题。请帮助我... ParameterNameAware 的
我正在开发我的 struts2 应用程序来解决参数篡改问题。我听说这可以通过在我的操作中实现 ParameterNameAware 接口(interface)来解决,但我还没有找到解释这种情况的最佳示
我是一名优秀的程序员,十分优秀!