我在java中有一个函数,它接收SOAP请求(一个java对象)并验证请求参数。验证后,此请求将进一步用于业务逻辑。在验证请求时,如果函数发现无效参数,它会尝试纠正该参数并更改其值。这意味着,作为函数参数接收的请求对象将被修改。该函数不能创建一个新请求并用有效参数填充它,然后返回它,因为该函数已经返回了一个响应对象。
所以,现在的问题是,改变作为输入参数的对象的状态是正确的方法吗?我认为不是,因为调用函数不知道传递的对象状态正在被修改,除非我们在java文档中提到它,并且调用者仔细阅读。
有替补吗?
发布于 2013-10-25 22:47:32
我建议创建一个“已验证”/“已更正”参数的映射,并将其添加为请求属性。您可以将此对象与响应一起发送,让调用者看到实际处理了哪些数据。
如果可以避免这种情况,我不会向业务逻辑函数发送请求对象,而是只发送经过验证的数据。
此外,请记住,尝试“更改”请求参数是棘手和危险的。黑客攻击系统的常见方法之一是发送意外输入,并查看系统是否会处理它(SQL注入,将脚本作为纯文本传递...)。
https://stackoverflow.com/questions/19583201
复制