我正在使用EJB容器和EJB开发一个JavaEE应用程序。
假设我有一个班级学生:
class Student{
private int id;
private String resume;
public void clearXss(){
///some logic to clear resume from js scripts
}
}我有一个独立的客户机和JavaEE服务器。客户端通过RMI连接到EJB容器。客户端传递学生类的对象。
我的问题是:在object方法上调用clearXss是安全的,还是有必要使用外部方法?我是说:
class MyBean{
private void save(Student student){...}
public void saveStudent(Student student){
sudent.clearXss();
save(student);
}
}vs
class MyBean{
private void save(Student student){...}
private String purifyXss(String string){...}
public void saveStudent(Student student){
student.setResume(purifyXss(student.getResume()))
save(student);
}
}我害怕的是调用我们从不受信任的客户端获得的对象的安全方法。所以这才是首要的安全问题。
发布于 2015-02-25 11:26:42
这不是一个简单的问题。一方面,您非常担心服务器端的代码注入。另一方面,据我所知,在RMI技术中,客户机对象将只序列化客户端没有方法的类数据,并在服务器端用类的服务器版本还原(反序列化),然后这两个变体都可以避免服务器端的方法注入。
发布于 2015-03-02 09:59:54
我不明白问题的两部分。
最后,我要说:
https://stackoverflow.com/questions/28566201
复制相似问题