gpt4 book ai didi

java - 设计: where to put Manager options?

转载 作者:行者123 更新时间:2023-12-01 15:43:17 25 4
gpt4 key购买 nike

我有一个音乐商店程序,其中有一个测试类、一个 Clerk 类(处理输入)、一个 Stocker 类(分配 CD 的可用性和价格)、Storehouse(包含所有可用的 CD)和然后是 CD(有价格和名称)。我想添加一个选项,让经理通过输入安全代码来添加 CD。我想做的是:当店员询问某人的订单(他们想要哪些 CD)时,您可以输入字符串“密码”,这将允许您输入一个字符串,仓库将检查该字符串是否合格,并且仅然后经理就可以添加 CD。大致了解一下代码:

public class CounterPerson(){
...
System.out.println("Hello. Indicate how many CDs you want");
System.out.println("You can also type password to add parts. ");
System.out.println("Here is what is available. ");
System.out.println(storeHouse);
String security = new String();
if(in.next().equals("password")){
System.out.println("Now type the password: ");
security = in.next();
StoreHouse.addCD(security);
}
else{

然后在 StoreHouse 类中:

public void addCD(String security){
if(checkSecure(security)){
System.out.println("You can add CDs now. Specify a name and quantity");
...
}
else{
System.out.println("You are not authorized.");
}
}

private boolean check(String security){
boolean secure = false;
if(security.equals("blahblah123"){ secure = true };
return secure;
}

我的问题:这是好的(安全)设计吗?如果不是,怎么会这样?

编辑:如果不清楚,Stockhouse 也可以由 Stocker 类访问(这是他获取 CD 的地方)

最佳答案

依赖硬编码常量来验证安全性从来都不是一个好主意。在这种情况下,从编译的类中进行逆向工程“blahblah123”并不会太困难。

您应该考虑您的系统有哪些要求,以及您需要它有多“安全”。每个用户都应该有自己的密码吗?是否有一个大家都使用的通用密码?您想记录用户执行的操作吗?如果需要区分用户,帐户是如何创建的?例如,您可能需要一个管理“控制台”来执行此操作,并在数据库中对密码进行加密。

您可以在几篇文章中获得一些最佳实践,甚至可以在 SOverflow 中获得。

很抱歉给您留下的问题多于答案;)

关于java - 设计: where to put Manager options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com