Java:一个接受字符串作为参数的方法,什么样的输入验证会使该方法具有可防御性?
家庭作业问题:我在一次关于安全编码的测验中遇到了这个问题: 在java中创建接受字符串并将其与预定义值进行比较的可防御方法时,什么样的输入验证会使该方法具有可防御性Java:一个接受字符串作为参数的方法,什么样的输入验证会使该方法具有可防御性?,java,string,validation,defensive-programming,Java,String,Validation,Defensive Programming,家庭作业问题:我在一次关于安全编码的测验中遇到了这个问题: 在java中创建接受字符串并将其与预定义值进行比较的可防御方法时,什么样的输入验证会使该方法具有可防御性 public static final String SLIDES="Slides"; public static final boolean isAcceptableType(String type){ if(________________________________){ return false; } if(!type.
public static final String SLIDES="Slides";
public static final boolean isAcceptableType(String type){
if(________________________________){
return false;
}
if(!type.equals(SLIDES){
return false;
}
return true;
}
我的目标是填充if条件,使方法具有可防御性。
我无法更改其他代码
根据我的理解,我们必须验证方法参数,以检查其是否为有效字符串。这样,在与幻灯片进行比较时,它不会抛出任何异常
我尝试了if(type==null),但结果不正确
请帮我回答这个问题。:) 原因不明
if (type == null)
不起作用
如果您的目标是确保类型
等于幻灯片
,则您可以使用:
if (!Objects.equals(type, SLIDES))
或
两者都将处理
type==null
使用空格的情况。答案是:type==null
。例如:
if(type == null){
return false;
“防御”什么?您只是问如何检查
类型
是否等于幻灯片
<代码>返回对象。等于(类型、幻灯片)是最简单的方法。想想什么会破坏这种方法。如果type.equals(SLIDES)
,它基本上会返回true-在什么情况下调用会中断/导致异常?您尝试了if(type==null)
,但得到了不正确的结果?你得到了什么结果?你想得到什么样的结果?“可辩护的”不是一个常见的术语。如果这是一个家庭作业问题,那么请分享您为它给出的任何定义。这是关于侧通道攻击,并确保所花费的时间不依赖于输入字符串吗?不过,这在功能上相当于在第一个空格中添加一个空检查,并且该答案被拒绝。我想除了填空以外,别的什么都不允许。这个问题有点不清楚。
if(type == null){
return false;